ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
2 июня
1309555 Топик полностью
Eddy_Em (14.05.2023 12:17, просмотров: 195) ответил Nikolay_Po на Ну, я для AVR использую AVR-GCC-12. С оптимизациями там порядок, я так не соптимизирую. И косяки кода становятся явными. Так что корректная работа кода в полной оптимизации, с LTO - один из признаков качества.
Вот, только что решил таки проверить: а что будет, если собрать не с -O2, а с -O3? Размер прошивки с 35кБ вырос аж до 44кБ!!! Вот так мне gcc наоптимизировал (видимо, все, что только можно, позаинлайнил). 

Проверил и с другими опциями: -O1 - 29кБ, -Os - 26кБ.

Конечно, думаю, что при -O3 таки пошустрей будет работать, чем при -O2, но здесь уже нужно каждую конкретную ситуацию рассматривать. Скажем, в F303 у меня еще дофига места, а вот в STM32F103C6T6 всего-то 32кБ флеша…


UPD: вот япона ж мать! В DEBUG-режиме прошивка 32кБ заняла - на 3кБ меньше (хоть там напичкано всякого отладочного выхлопа в USB). Единственное отличие дебаг от релиз режима - флаги -DEBUG и -flto. То бишь, LTO может еще и увеличить объем кода (раньше мне только уменьшала)…

eddy-em.livejournal.com github.com/eddyem