Из прерывания таймера много раз вызываются несколько мелких функций.
При уровнях оптимизации s,2,3 компилятор упорно инлайнит эти функции в тело обработчика прерывания вместо обычного вызова.
В результате по сравнению с оптимизацией 1 объем увеличивается на 500 байт.
Как принудительно запретить инлайнинг и вызывать как обычные функции ?
Сергей Борщ
Nov 13 2010, 18:35
Цитата(ukpyr @ Nov 13 2010, 20:20)

Как принудительно запретить инлайнинг и вызывать как обычные функции ?
__attribute__((__noinline__))?
Exstreem
Nov 13 2010, 18:38
При определении функции (примерно так):
void F (void) __attribute__((noinline));
void F(void);
Сергей Борщ
Nov 13 2010, 19:41
Цитата(Exstreem @ Nov 13 2010, 20:38)

При определении функции (примерно так):
Излишне сложно.
__attribute__((noinline)) void F (void)
{
.......
}