Цитата(ReAl @ Jun 23 2009, 14:44)

Самая правильная оптимизация для AVR
Вот за всякие дополнительные ручки по поводу лимита размера для inline и тому подобное - да, не дёргаю. И так не плохо.
Не думаю, что -O2 должна сильно поменять ситуацию.
Виноват, буковку "s" не заметил.
Я сегодня совсем сплю

Кстати, посмотрел на описание оптимизации (перевод книги по GCC), там, вроде бы, часть флагов компилятора для разных режимов оптимизации смешивается...
Допустим, -Os включает -O3 и добавляет свои флаги...
-O3 включает -O2 и добавляет свои флаги...
-O2 включает -O и добавляет свои флаги...
А -O1 и -O вообще одно и то же...
Т. е., получается, что совместно использовать, например -O2 и -Os смысла никакого нет, т. к., -Os включает -O2 и добавляет свои флаги?
Кстати, опции -Oi фактически являются "обёртками", которые указывают на включение других дополнительных опций, как я понял?
Цитата
Там оно вроде бы закомментировано, так что будет использоваться умолчание (gnu++98 для С++)
Ага, этого я тоже не заметил...
Ещё вопросы...
ISR вызывается в контексте того процесса, который выполнялся при возникновении прерывания?
Как я понимаю, оптимальное содержимое ISR - инструкция перевода какого-либо эвента в сигнальное состояние?
А если в ISR модифицируются глобальные объекты, которые модифицируются так же в одном из процессов (или в нескольких), то необходимо использовать средства синхронизации для доступа к этим объектам (критические секции, семафоры)?
Причём, внутри ISR прерывания запрещены всегда и получается, что критические секции в ISR использовать бессмысленно, а семафоры вообще противопоказано... и средства синхронизации нужно использовать вне ISR в процессах, работающих с нашим глобальным объектом?
Помогите разобраться, пожалуйста, а то в голове каша