9. AVR Memories
This section describes the different memory types in the device. The AVR architecture has two main
memory spaces, the Data Memory and the Program Memory space. In addition, the device features an
EEPROM Memory for data storage. All memory spaces are linear and regular.
In-System Reprogrammable Flash Program Memory
The ATmega1284 contains 128Kbytes On-chip In-System Reprogrammable Flash memory for program
storage. Since all AVR instructions are 16 or 32 bits wide, the Flash is organized as 64 x 16.
The Flash memory has an endurance of at least 10,000 write/erase cycles. The ATmega1284 Program
Counter (PC) is 16 bits wide, thus addressing the 64 program memory locations. The operation of Boot
Program section and associated Boot Lock bits for software protection are described in detail in Boot
Loader Support – Read-While-Write Self-Programming. Refer to Memory Programming for the description
on Flash data serial downloading using the SPI pins or the JTAG interface.
Constant tables can be allocated within the entire program memory address space, using the Load
Program Memory (LPM) instruction.
Timing diagrams for instruction fetch and execution are presented in Instruction Exectution Timing.
Figure 9-1. Program Memory Map ATmega1284
Application Flash Section
Boot Flash Section
BTLDR - Boot Loader Support – Read-While-Write Self-Programming on page 370
MEMPROG- Memory Programming on page 387
Instruction Execution Timing on page 26
Atmel ATmega1284 [DATASHEET]