Вот понадобилось использовать внешнюю память. Со стороны железа вроде вопросов больше нет - в даташите всё описано. А вот с компиляцией возникли проблемы.
По коду получилось что используется аж 6085 байт оперативной памяти. Но я всё пишу с расчёта на внешнюю оперативку. Так вот посли сборки проекта (WinAVR) получаю такую статистику:
Код
Size after:
main.elf :
section size addr
.data 3910 8388864
.text 31176 0
.bss 2175 8392774
.noinit 0 8394949
.eeprom 66 8454144
.stab 1032 0
.stabstr 132 0
.debug_aranges 160 0
.debug_pubnames 5433 0
.debug_info 23623 0
.debug_abbrev 3722 0
.debug_line 14811 0
.debug_str 5416 0
Total 91656
AVR Memory Usage:
-----------------
Device: atmega128
Program: 35086 bytes (26.8% Full)
(.text + .data + .bootloader)
Data: 6085 bytes (148.6% Full)
(.data + .bss + .noinit)
-------- end --------
Видно, что 149% аж занято. Как же так? В результате программа не стратрует.
В Makefile сделал такое объявление:
Код
EXTMEMOPTS = -Wl,-Tdata=0x801100,--defsym=__heap_end=0x80ffff
И пробовал делать тестовую программу для проверки памяти отлично пишет и читает в адреса далее 0x1100. Может ещё что-то надо указать?