мини-отчет:
GCC
Код
-O2
Info: (b_cpu.elf) 9680 Bytes program size (code + initialized data).
Info: 6704 Bytes free for stack + heap.
-O3
Info: (b_cpu.elf) 10 KBytes program size (code + initialized data).
Info: 6040 Bytes free for stack + heap.
-Os
Info: (b_cpu.elf) 9812 Bytes program size (code + initialized data).
Info: 6572 Bytes free for stack + heap.
Tasking
Код
-O2
Info: (c_cpu.elf) 9616 Bytes program size (code + initialized data).
Info: 6768 Bytes free for stack + heap.
-O3
Info: (c_cpu.elf) 9940 Bytes program size (code + initialized data).
Info: 6444 Bytes free for stack + heap.
-Os
Info: (c_cpu.elf) 9404 Bytes program size (code + initialized data).
Info: 6980 Bytes free for stack + heap.
Для таскинга оптимизация по размеру была сделана вручную ключом -Os и trade-off перенесен в пользу размера. На ключ компилятор не ругался, пробовал, также, ключ -О3 при level4 - результат практически такой-же.
По умолчанию, кстати, в таскинге отключен дебаггер, хотя разница совсем небольшая.
Остальные настройки не трогались.
В железе проверить не удалось, поскольку собранного проекта под этот код с новым ниосом нет.
В коде присутствуют custom_instruction в довольно небольшом количестве (влиять на оптимизацию, по моим подсчетам, сильно не должно).
Интересно, это я так плохо пишу? или так хорошо?