## Unhandled Exceptions

If the Fault Category is Exception, then the fault is caused by an unhandled processor exception. You can get further information on the type of exception by looking at the first three lines of the generated output:

Fault Category: Exception Fault Reason: 10000000
ExcId 00000001 CodeAddr f800415c DataAddr 00000000 Extra 00000005
Exc 1 Cpsr=60000013 FAR=00000000 FSR=00000005

The CodeAddr and DataAddr fields show the address of the instruction that caused the exception and, depending on the type of exception and instruction, the address of the data the instruction was trying to access. You can use the CodeAddr value to find the function which was being executed by using the MAKSYM tool.

The number after ExcId is the type of exception, in hexadecimal, and is one of the ARM exception types. The meaning of the numbers depends on the type of processor.

- If the exception is a prefetch abort, then the code address is invalid.

- A data abort means that the code address is invalid.

The number after FAR is the fault address register; this is the address that caused the fault.

The number after FSR is the fault status register value and shows why the MMU raised an exception.

The number after CPSR is the value of the CPU's CPSR register when the exception occurred. The 5 least-significant bits of the CPSR register indicate the ARM processor mode.