Využití FLASH paměti nad 64kB pro program.

Někde jsem se dočetl, že maximální velikost programu, co lze bez problémů do Megy uložit, je 64kB, jelikož prý víc nedovoluje 8bit adresace. Co je na tom pravdy? Je nějaký zádrhel např. uložení programu o velikosti 200kB do ATmega 2560, jenž má 256kB FLASH?

Délka programu je omezená jenom velikostí programové paměti, protože PC má šířku 15/16/17 bitů pro adresaci 32/64/128K programových míst (tedy word adres). Trošku složitější je pak použití nepřímého skoku nebo čtení z Flash paměti, kdy IJMP, ICALL a LPM čte z adresy 0000-FFFF a pokud je potřeba skákat pomocí EIJMP nebo EICALL, pak se cílová adresa skládá z EIND:ZH:ZL, čtení pomocí ELPM pak z adresy RAMPZ:ZH:ZL.

Tohle za tebe bude řešit GCC

Děkuju za vyčerpávající odpověď. Takže pokud jsem to pochopil správně, tak při nahrání programu do mcu omezení 64kB nehrozí. Jedině snad v EEPROM jenž má víc jak 64kB, kde se musí nastavit správná paměťová banka a až pak z ní číst.

EEPROM má u ATmega640/1280/2560 jen 4 KB. Flash paměť je programová paměť.

Ano vím, měl jsem spíš na mysli externí paměti.