Modes and Exception types

Exception Mode Description
Reset SVC Always occurs on power up. Resets the CPU.
Undefined Undefined Generated when an unknow instruction is executed. Used to emulate a richer instruction set by trapping instructions such as those meant for a floating point unit.
Software Interrupt SVC Used to switch in supervisor mode and call an OS function.
Prefetch Abort Abort Generated by the memory system when the CPU tries to execute an instruction at an invalid address.
Data Abort Abort Generated by the memory system when the CPU tries read or write from an invalid address.
Interrupt Request IRQ Generate by an external source by asserting the IRQ line.
Fast Interrupt Request FIQ Generate by an external source by asserting the FIQ line.

Privileged modes

  • Can’t go from user to system.
  • Full memory access
  • Can switch to any other mode
  • Can change all the bits in the CPSR

The System, Supervisor, Abort, Undefined, IRQ and FIQ modes are all priviledged modes. The User mode is unpriviledged.

Priviledged modes can change all the bits in the CPSR. Unpriviledged modes can only change the upper eight bits or the flag bits.

Priviledged modes can also access protected memory. Whether a device has protected memory or not is dependent on the hardware implementation. The CPU has an output pin that is asserted when the CPU is in a priviledged mode. The memory hardware can use this pin to control access to certain regions of memory.

Table Of Contents

Previous topic

Register Organization

Next topic

Current Program Status Register (CPSR)

This Page