Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Запретить автоматический инлайнинг функций в avr-gcc
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
ukpyr
Из прерывания таймера много раз вызываются несколько мелких функций.
При уровнях оптимизации s,2,3 компилятор упорно инлайнит эти функции в тело обработчика прерывания вместо обычного вызова.
В результате по сравнению с оптимизацией 1 объем увеличивается на 500 байт.

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


__attribute__((noinline)) void F (void)
{
.......
}


ukpyr
спасибо, помогло
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.