Datasheet
274
2545T–AVR–05/11
ATmega48/88/168
Note: 1. “1” means unprogrammed, “0” means programmed.
27.7 Addressing the flash during self-programming
The Z-pointer is used to address the SPM commands.
Since the Flash is organized in pages (see Table 28-9 on page 289), the Program Counter can
be treated as having two different sections. One section, consisting of the least significant bits, is
addressing the words within a page, while the most significant bits are addressing the pages.
This is1 shown in Figure 27-3 on page 275. Note that the Page Erase and Page Write opera-
tions are addressed independently. Therefore it is of major importance that the Boot Loader
software addresses the same page in both the Page Erase and Page Write operation. Once a
programming operation is initiated, the address is latched and the Z-pointer can be used for
other operations.
The only SPM operation that does not use the Z-pointer is Setting the Boot Loader Lock bits.
The content of the Z-pointer is ignored and will have no effect on the operation. The LPM
instruction does also use the Z-pointer to store the address. Since this instruction addresses the
Flash byte-by-byte, also the LSB (bit Z0) of the Z-pointer is used.
Table 27-4. Boot reset fuse
(1)
.
BOOTRST Reset address
1 Reset vector = Application reset (address 0x0000)
0 Reset vector = Boot loader reset (see Table 27-6 on page 281)
Bit 151413121110 9 8
ZH (R31) Z15 Z14 Z13 Z12 Z11 Z10 Z9 Z8
ZL (R30) Z7Z6Z5Z4Z3Z2Z1Z0
76543210