The classical ARM architecture (aka "A&R") supports the following hardware-related exceptions:
- Undefined Instruction
- Prefetch Abort (failure to fetch an instruction)
- Data Abort (failure to read or write data)
The Cortex-M model support more granularity:
- HardFault (generic fault, not covered by other cases)
- MemManage (memory protection fault)
- BusFault (memory access fault)
- UsageFault (code-related faults: undefined instruction, invalid state etc.)
Specific chips may implement other errors. In case of non-core hardware, errors would typically be signaled as interrupts.