Пересобрал этот пример с ЖК дисплеем под WinAVR+aStudio.
Пришлось конечно попыхтеть но так хато хоть в коде разобрался.
Там есть переменные(массивы) - шрифты, которые занимают много места для Mega8.
Конечно оптимизация и т.д., но всеравно не входит:
AVR Memory Usage:
-----------------
Device: atmega8
Program: 3516 bytes (42.9% Full)
(.text + .data + .bootloader)
Data: 616 bytes (60.2% Full)
(.data + .bss + .noinit)
Build succeeded with 0 Warnings...
Особенно при добавлении таких новых переменных растет секция Data. Это вообще что такое? Оперативная память или чего? Если так может у WinAVR есть какое-нить волшебное слово перед определением переменной? (типа volatile чтоб оптимизация не работала...)
Вот даже если такую конструкцию добавляю сразу растет секция Data:
BYTE zero[]=
{
0x00, 0xf8, 0xfe, 0x06, 0x03, 0x83, 0xc3, 0x63, 0x33, 0x1e, 0xfe, 0xf8,
0x00, 0x07, 0x1f, 0x1e, 0x33, 0x31, 0x30, 0x30, 0x30, 0x18, 0x1f, 0x07,
};
Ах да, все это работает когда я банально заменил файлик avr-gcc.exe на avr-c++.exe у WinAVR...
А так все работает, только у единственного шрифта который входит и то пришлось маленькие английские и все буквы что ниже закоментировать...