[ARM processor operating mode]
Processor operating mode
1.User (URS): User mode, Linux applications run in user mode
2.FIQ (FIQ): Fast interrupt Mode
3.IRQ (IRQ): Interrupt mode
4.Supervisor (SVC): System protection mode, Linux kernel running in system protected mode
5.Abort (ABT): anomaly mode
6.Undefined (und): No instruction mode defined
7.System (SYS): System mode
[Arm Register detailed]
Arm Registers (37)
Universal Registers (31)
1. Non-grouped universal registers (R0-R7)
2. Packet General Register (R8-R14)
1.r13 is typically used to act as a stack pointer sp
2.r14 is typically used to act as a link register LR, to hold function return addresses, and to save an interrupt return address
3. Program Counter (R15)
Typically used to act as a program counter PC
Status Word register (6)
1.CPSR to save CPU status word
2.SPSR to save the current state of CPSR when an exception occurs, to restore the CPU status word when the exception is returned
Status Word Register format
1.N (31-bit) negative value is set to 1 when operation, otherwise 0
2.Z (30 bit) when the operation is zero value is set to 1, otherwise set to 0
3.I (7-bit) when I position is 1 o'clock shielded interrupt (IRQ)
4.F (6-bit) when F position is 1 o'clock shielded fast Interrupt (FIQ)
5.M (4-0-bit) indicates the operating mode of the processor
0b10000 usr 0b10001 fiq 0b10010 IRQ 0b10011 Svc
0b10111 abt 0b11011 und 0b11111 sys
[state-Embedded notes] [021-022] [ARM processor operating mode]