Здравствуйте, недавно начал заниматься программированием микроконтроллеров STM32, поэтому возникает много вопросов, которые могут показаться слишком простыми. Тем не менее...
В STM32CubeIDE есть несколько вариантов (опций) при компиляции проекта, а именно debug и release. Подскажите пожалуйста, в чем между ними отличие?
Добрый день!
Отличие в настройках компилятора, release подразумевает более строгие настройки оптимизации, какие-то переменные могут быть полностью "заоптимизированы", что усложняет отладку, но при этом уменьшает размер кода и увеличивает скорость выполнения.
Где-то видел интересное мнение, что лучше всегда работать в debug, пока не столкнешься с ограничениями (не хватит памяти итд) и только тогда уже рассматривать переход на release. Смысл такой, что переход на release конфигурацию должен влечь за собой полноценное тестирование, даже если оно уже было проведено для debug-сборки.
Но в целом это утверждение может быть спорным.
@tqfp Фактически - нет. Это просто два предустановленных профиля, которые можно перенастроить как угодно, и даже переименовать или удалить, создать свои профили.
Профиль Debug имеет предустановки для отладки - выключенная оптимизация, включенные опции отладки. Профиль Release предварительно настроен с оптимизацией -Os (минимальны размер прошивки), выключена трассировка отладки.
Однако, можно перенастраивать эти профили как угодно, жесткой привязки в них нет.