реклама на сайте
подробности

 
 
> [avr-gcc] Можно ли разместить vtable во flash?
kurtis
сообщение Dec 10 2009, 18:16
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205



Столкнулся с проблемой:
Код
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
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 15:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01363 секунд с 7
ELECTRONIX ©2004-2016