Figure 24-2. Memory Sections
Program Memory
BOOTSZ = ’11’
Program Memory
BOOTSZ = ’10’
0x0000
0x0000
Application Flash Section
Application Flash Section
End RWW
End RWW
Start NRWW
Start NRWW
Application Flash Section
Boot Loader Flash Section
Application Flash Section
Boot Loader Flash Section
End Application
Start Boot Loader
End Application
Start Boot Loader
Flashend
Flashend
Program Memory
BOOTSZ = ’01’
Program Memory
BOOTSZ = ’00’
0x0000
0x0000
Application Flash Section
Application Flash Section
End RWW, End
Application
End RWW
Start NRWW
Start RWW,
Start Boot Loader
Application Flash Section
Boot Loader Flash Section
End Application
Start Boot Loader
Boot Loader Flash Section
Flashend
Flashend
Note:
1. The parameters in the figure above are given in Table 24-7 on page 251.
24.4 Boot Loader Lock Bits
If no boot loader capability is needed, the entire flash is available for application code. The boot loader has two separate sets
of Boot Lock bits which can be set independently. This gives the user a unique flexibility to select different levels of
protection.
The user can select:
●
●
●
●
To protect the entire flash from a software update by the MCU.
To protect only the boot loader flash section from a software update by the MCU.
To protect only the application flash section from a software update by the MCU.
Allow software update in the entire flash.
See Table 24-2 and Table 24-3 on page 244 for further details. The boot lock bits can be set in software and in serial or
parallel programming mode, but they can be cleared by a chip erase command only. The general write lock (lock bit mode 2)
does not control the programming of the flash memory by SPM instruction. Similarly, the general Read/Write lock (lock bit
mode 1) does not control reading nor writing by LPM/SPM, if it is attempted.
ATmega16/32/64/M1/C1 [DATASHEET]
243
7647O–AVR–01/15