Note that the user software can never read any code that is located inside the RWW
section during a Boot Loader software operation. The syntax “Read-While-Write sec-
tion” refers to which section that is being programmed (erased or written), not which
section that actually is being read during a Boot Loader software update.
RWW – Read-While-Write
Section
If a Boot Loader software update is programming a page inside the RWW section, it is
possible to read code from the Flash, but only code that is located in the NRWW sec-
tion. During an on-going programming, the software must ensure that the RWW section
never is being read. If the user software is trying to read code that is located inside the
RWW section (i.e., by load program memory, call, or jump instructions or an interrupt)
during programming, the software might end up in an unknown state. To avoid this, the
interrupts should either be disabled or moved to the Boot Loader section. The Boot
Loader section is always located in the NRWW section. The RWW Section Busy bit
(RWWSB) in the Store Program Memory Control and Status Register (SPMCSR) will be
read as logical one as long as the RWW section is blocked for reading. After a program-
ming is completed, the RWWSB must be cleared by software before reading code
located in the RWW section. See “Store Program Memory Control and Status Register –
SPMCSR” on page 321. for details on how to clear RWWSB.
NRWW – No Read-While-Write The code located in the NRWW section can be read when the Boot Loader software is
Section
updating a page in the RWW section. When the Boot Loader code updates the NRWW
section, the CPU is halted during the entire Page Erase or Page Write operation.
Table 133. Read-While-Write Features
Which Section does the Z-pointer
Address during the Programming?
Which Section can be
Read during Programming?
Read-While-Write
Supported?
CPU Halted?
RWW Section
NRWW Section
None
No
Yes
No
NRWW Section
Yes
Figure 136. Read-While-Write vs. No Read-While-Write
Read-While-Write
(RWW) Section
Z-pointer
Addresses NRWW
Section
Z-pointer
No Read-While-Write
(NRWW) Section
Addresses RWW
Section
CPU is Halted
During the Operation
Code Located in
NRWW Section
Can be Read During
the Operation
318
ATmega640/1280/1281/2560/2561
2549A–AVR–03/05