[an error occurred while processing this directive]
|
Об оптимизации. Я вседа пользуюсь оптимизацией по скорости (уровень HIGH), но оказывается, что при этом размер программы зачастую оказывается меньше, чем если бы использовалась оптимизация по размеру скажем тоже с уровнем HIGH. И это не так удивительно, как может показаться на первый взгляд. Дело в том, что стараясь уменьшить размер программы компилятор заменяет последовательность команд вызовом ряда внутренних функций (пролог, эпилог и т.д.). И хотя вызов функции вроде бы сокращает размер кода, но при этом размер программы увеличивается в целом за счет включения в программу большого числа внутренних функций.
Флаг Function inlining находится в окошке Enabled optimizations на закладке Optimizations.
О константах. Честно говоря я не обращал на это особого внимания. В опциях у меня этот флаг стоит по умолчанию, без возможности изменения.
Все константы я явным образом размещаю в программной памяти с помощью атрибута __flash. Попробую с этим разобраться, как только - так сразу сообщу.
E-mail: info@telesys.ru