Fault-related events are triggered by the CPU in the case of execution errors, or policy violations. The CPU is able to detect a number of runtime errors such as:
- Attempting to execute code outside the memory areas marked as executable
- Fetching data or next instruction to execute from an invalid location
- Illegal load or store using an unaligned address
- Division by zero
- Trying to access unavailable coprocessor functionalities
- Attempting to read/write/execute outside the memory areas allowed for the current running mode
Some core microcontrollers support different types of exceptions depending on the type of error. Cortex-M3/M4 is able to distinguish among bus errors, usage faults, memory access violations and generic faults, ...