10
32000D–04/2011
AVR32
rations of shadowed registers. This allows for maximum flexibility in targeting the processor for
Figure 2-4.
A typical AVR32B register file implementation
Three different shadowing schemes are offered, small, half and full, ranging from no general
Figure 2-5.
AVR32 offers three different models for shadowed registers.
2.7
The Stack Pointer
Since the Stack Pointer (SP) is located in the register file, it can be addressed as an ordinary
register. This simplifies allocation and access of local variables and parameters. The Stack
Pointer is also used implicitly by several instructions.
The system modes have a shadowed stack pointer different from the application mode stack
pointer. This allows having a separate system stack.
Application
Bit 0
Supervisor
Bit 31
PC
SR
INT0PC
FINTPC
INT1PC
SMPC
R7
R5
R6
R4
R3
R1
R2
R0
Bit 0
Bit 31
PC
SR
R12
INT0PC
FINTPC
INT1PC
SMPC
R7
R5
R6
R4
R11
R9
R10
R8
R3
R1
R2
R0
RSR_INT0
SR
RSR_EX
SR
SP_APP
SP_SYS
RSR_NMI
SR
R12
R11
R9
R10
R8
Bit 0
Bit 31
PC
LR
INT0PC
FINTPC
INT1PC
SMPC
R7
R5
R6
R4
R3
R1
R2
R0
Bit 0
Bit 31
PC
LR_INT2
FINTPC
SMPC
R7
R5
R6
R4
R3
R1
R2
R0
Bit 0
Bit 31
PC
LR_INT3
R12_INT3
INT0PC
FINTPC
INT1PC
SMPC
R7_INT3
R5_INT3
R6_INT3
R4_INT3
R11_INT3
R9_INT3
R10_INT3
R8_INT3
R3_INT3
R1_INT3
R2_INT3
R0_INT3
SP_SYS
R12
R11
R9
R10
R8
R12_INT2
R11_INT2
R9_INT2
R10_INT2
R8_INT2
Bit 0
Bit 31
PC
LR
INT0PC
FINTPC
INT1PC
SMPC
R7
R5
R6
R4
R3
R1
R2
R0
SP_SYS
R12
R11
R9
R10
R8
Bit 0
Bit 31
PC
LR
INT0PC
FINTPC
INT1PC
SMPC
R7
R5
R6
R4
R3
R1
R2
R0
SP_SYS
R12
R11
R9
R10
R8
Bit 0
Bit 31
PC
LR
INT0PC
FINTPC
INT1PC
SMPC
R7
R5
R6
R4
R3
R1
R2
R0
SP_SYS
R12
R11
R9
R10
R8
RSR_INT1
SR
RSR_INT2
SR
RSR_INT3
SR
INT0
INT1
INT2
INT3
Exception
NMI
RSR_SUP
LR
RAR_INT0
RAR_EX
RAR_NMI
RAR_INT1
RAR_INT2
RAR_INT3
RAR_SUP
Small
Bit 0
Bit 31
PC
LR
INT0PC
FINTPC
INT1PC
SMPC
R7
R5
R6
R4
R3
R1
R2
R0
Half
Bit 0
Bit 31
PC
LR_INTx
FINTPC
SMPC
R7
R5
R6
R4
R3
R1
R2
R0
Full
Bit 0
Bit 31
PC
LR_INTx
R12_INTx
INT0PC
FINTPC
INT1PC
SMPC
R7_INTx
R5_INTx
R6_INTx
R4_INTx
R11_INTx
R9_INTx
R10_INTx
R8_INTx
R3_INTx
R1_INTx
R2_INTx
R0_INTx
SP_SYS
R12
R11
R9
R10
R8
R12_INTx
R11_INTx
R9_INTx
R10_INTx
R8_INTx