Academic Program

Exception Types

Exception Types

Table 7.1 in the "PIC32MZ2048EFG100 Data Sheet"  lists the MIPS32 M5150 MPU core exception types in order of priority, as well as the handler entry points (vector addresses), CP0 Statusxxx bits, CP0 CauseEXEC code and default XC32 handler identifiers:

table7-1a-v2.png

table7-1b-v2.png

PIC32MZ exception handler entry point addresses are more fully explained here.

Statistically, the following exception types will occur most often in a typical PIC32MZ application:

  • Reset Exception
  • Soft-Reset Exception
  • NMI (Non-Maskable Interrupt) Exception, covering such things as:
    • Deadman Timer Time-out
    • Watchdog Timer Time-out (either when the CPU is in run or sleep mode)
    • Clock-Fail (FSCM) detection
  • Interrupt Exception, covering such things as:
    • Peripheral event
    • External pin-change
    • DMA event
  • Execution Exception, covering such things as:
    • Integer overflow
    • Divide by 0
    • Floating-Point or DSP ASE exception

Note: The XC32 default exception handler functions listed in Table 7.1 (_general_exception_handler( )_nmi_handler( ), and _on_reset( )) are weak functions (i.e. they can be overridden by defining your own version in your source code).
 
Basic PIC32MZ Exception & Interrupt handling in C is covered here.

The _general_exception_handler( ) application code must poll CP0 CauseEXCCODE to determine the source of an unexpected exception. This is covered here.