431
8331B–AVR–03/12
Atmel AVR XMEGA AU
33. Memory Programming
33.1
Features
•
Read and write access to all memory spaces from
– External programmers
– Application software self-programming
•
Self-programming and boot loader support
– Read-while-write self-programming
– CPU can run and execute code while flash is being programmed
– Any communication interface can be used for program upload/download
•
External programming
– Support for in-system and production programming
– Programming through serial PDI or JTAG interface
•
High security with separate boot lock bits for:
– External programming access
– Boot loader section access
– Application section access
– Application table access
•
Reset fuse to select reset vector address to the start of the
– Application section, or
– Boot loader section
33.2
Overview
This section describes how to program the nonvolatile memory (NVM) in Atmel AVR XMEGA
devices, and covers both self-programming and external programming. The NVM consists of the
flash program memory, user signature and calibration rows, fuses and lock bits, and EEPROM
data memory. For details on the actual memories, how they are organized, and the register
description for the NVM controller used to access the memories, refer to
The NVM can be accessed for read and write from application software through self-program-
ming and from an external programmer. Accessing the NVM is done through the NVM controller,
and the two methods of programming are similar. Memory access is done by loading address
and/or data to the selected memory or NVM controller and using a set of commands and triggers
that make the NVM controller perform specific tasks on the nonvolatile memory.
From external programming, all memory spaces can be read and written, except for the produc-
tion signature row, which can only be read. The device can be programmed in-system and is
accessed through the PDI using the PDI or JTAG physical interfaces.
describes PDI and JTAG in detail.
Self-programming and boot loader support allows application software in the device to read and
write the flash, user signature row and EEPROM, write the lock bits to a more secure setting,
and read the production signature row and fuses. The flash allows read-while-write self-pro-
gramming, meaning that the CPU can continue to operate and execute code while the flash is
being programmed.
”Self-programming and Boot Loader Support” on page 435
describes this in
detail.
For both self-programming and external programming, it is possible to run a CRC check on the
flash or a section of the flash to verify its content after programming.