Die AVR haben eine Harvard-Architektur, d.h. Programm und Datenspeicher sind getrennt.

Das Programm muss immer im Flash liegen. Wenn also Teile des Programms in einem anderen Speicher (RAM, EEPROM, SD-Karte, ...) liegen, müssen die in den Flash geladen und dann von dort ausgeführt werden.

Prinzipiell ist das machbar, technisch aber keine gute Idee, da die Programmierzyklenzahl des AVR-Flash Speichers sehr begrenzt ist (ca. 10000 Schreibzyklen).

Wenn das Programm also nicht in die 128kByte passt, hilft nur, auf einen anderen AVR, z.B. 2560, auszuweichen.