beautypg.com

Rww – read-while-write section, Nrww – no read-while-write section, Atmega162/v – Rainbow Electronics ATmega162V User Manual

Page 217

background image

217

ATmega162/V

2513E–AVR–09/03

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 ongoing 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 Register (SPMCR) 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 “Store Program Memory
Control Register – SPMCR” on page 220.
for details on how to clear RWWSB.

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.

Figure 93. Read-While-Write vs. No Read-While-Write

Table 89. 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

Read-While-Write

(RWW) Section

No Read-While-Write

(NRWW) Section

Z-pointer
Addresses RWW
Section

Z-pointer
Addresses NRWW
Section

CPU is Halted
During the Operation

Code Located in
NRWW Section
Can be Read During
the Operation