3
32000D–04/2011
AVR32
Load/store to an address specified by a pointer register with predecrement
Load/store to an address specified by a pointer register with displacement
Load/store to an address specified by a small immediate (direct addressing within a small
page)
Load/store to an address specified by a pointer register and an index register.
The register file is organized as 16 32-bit registers and includes the Program Counter, the Link
Register, and the Stack Pointer. In addition, one register is designed to hold return values from
function calls and is used implicitly by some instructions.
The AVR32 core defines several micro architectures in order to capture the entire range of appli-
cations. The microarchitectures are named AVR32A, AVR32B and so on. Different
microarchitectures are suited to different end applications, allowing the designer to select a
microarchitecture with the optimum set of parameters for a specific application.
1.2.1
Exceptions and Interrupts
The AVR32 incorporates a powerful exception handling scheme. The different exception
sources, like Illegal Op-code and external interrupt requests, have different priority levels, ensur-
ing a well-defined behavior when multiple exceptions are received simultaneously. Additionally,
pending exceptions of a higher priority class may preempt handling of ongoing exceptions of a
lower priority class. Each priority class has dedicated registers to keep the return address and
status register thereby removing the need to perform time-consuming memory operations to
save this information.
There are four levels of external interrupt requests, all executing in their own context. The con-
texts can provide a number of dedicated registers for the interrupts to use directly ensuring low
latency. High priority interrupts may have a larger number of shadow registers available than low
priority interrupts. An interrupt controller does the priority handling of the external interrupts and
provides the prioritized interrupt vector to the processor core.
1.2.2
Java Support
Java hardware acceleration is available as an option, in the form of a Java Card or Java Virtual
Machine hardware implementation.
1.2.3
FlashVault
Revision 3 of the AVR32 architecture introduced a new CPU state called Secure State. This
state is instrumental in the new security technology named FlashVault. This innovation allows
the on-chip flash and other memories to be partially programmed and locked, creating a safe on-
chip storage for secret code and valuable software intellectual property. Code stored in the
FlashVault will execute as normal, but reading, copying or debugging the code is not possible.
This allows a device with FlashVault code protection to carry a piece of valuable software such
as a math library or an encryption algorithm from a trusted location to a potentially untrustworthy
partner where the rest of the source code can be developed, debugged and programmed.