Datasheet
279
ATmega169A/PA/329A/PA/649A/P/3290A/PA/6490A/P [DATASHEET]
8284E–AVR–02/2013
• When erasing or writing a page located inside the RWW section, the NRWW section can be read during the
operation
• When erasing or writing a page located inside the NRWW section, the CPU is halted during the entire operation
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 section” 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.
27.4.1 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 section. 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 a call/jmp/lpm 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 programming is completed, the RWWSB must be cleared by software before reading
code located in the RWW section. See Section “27.9.1” on page 291. for details on how to clear RWWSB.
27.4.2 NRWW – No Read-While-Write Section
The code located in the NRWW section can be read when the Boot Loader software is 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 27-1. Read-While-Write features.
Which section does the Z-pointer
address during the programming?
Which section can be
read during
programming?
Is the CPU
halted?
Read-While-Write
supported?
RWW Section NRWW Section No Yes
NRWW Section None Yes No