36.2.2 Addressing the Program Memory Space
In the CPU data space, the I/O memory, the fuses, EEPROM and SRAM are located at addresses from 0x0000 to 0x7FFF. In addition, a section of the Flash memory (up to 32 KB) can be mapped into the addresses from 0x8000 to 0xFFFF. These addresses (0x0000 - 0xFFFF) are also valid for access by the UPDI peripheral.
The CPU code space, i.e., the entire Flash memory, can be accessed by the CPU
using the LPM/SPM
instructions, starting at the relative address
0x0000. For access by UPDI, the CPU data space and the CPU code space are
virtually one continuous address space, and the code space always starts at the
offset address 0x80_0000.
See the Memories sections for more details and exact addresses of the memory areas in a given device.