Столкнулся с проблемой:
Код
AVR Memory Usage:
-----------------
Device: atmega128

Program:   23290 bytes (17.8% Full) (.text + .data + .bootloader)
Data:       3260 bytes (79.6% Full) (.data + .bss + .noinit)
Тенденция меня немного пугает, свободного ОЗУ чуть более 20%. Стал смотреть где можно лишнего обрезать, натолкнулся на таблицы виртуальных функций которые зачем-то сидят в ОЗУ. (вывод команды avr-nm, 2-я колонка это занимаемый размер)
Код
00800169 0000000e V vtable for Menu::EndItem
00800177 0000000e V vtable for Menu::InterItem
00800185 0000000e V vtable for Menu::GlobalItem
00800193 0000000e V vtable for Menu::BaseClass
008001a1 00000012 V vtable for TechObj
008001b3 00000012 V vtable for Kog_Net
008001c5 00000026 V vtable for EtazItem2
008001eb 00000012 V vtable for Pdz
Я не являюсь большим специалистом в GCC, но мне кажется, что нету принципиальной разницы, где хранить указатели на функции (в озу или в flash). Разместив vtable в flash, я ситуацию не сильно исправлю, но 150 байт лишними никогда не бывают))
Возможно ли как-то указать компилятору чтоб vtable по умолчанию размещались в flash?

Компилятор GCC собранный для AVR версии 4.3.3