PIC24FJ256GU410 interrupt vectors

Reset at 0x000000 (a GOTO to the program), then the interrupt vector table from 0x000004: first the 6 traps (non-maskable faults: oscillator failure, address error, stack error, math error…), then the 90 interrupt sources. Each vector is one program word holding its handler's address, so vector n is at 0x000004 + 2n, and IRQ n is vector n + 8. Each source has a flag in IFSx, an enable bit in IECx and a priority from 1 to 7 in IPCx (the Registers page lists them). In XC16 a handler is named after its vector: void __attribute__((interrupt, auto_psv)) _T1Interrupt(void).

VectorIRQ · addressNameHandlerSource
–0x000000RESETreset: main() after start-upReset
0trap · 0x000004OscillatorFail_OscillatorFailOscillator Fail Trap Vector
1trap · 0x000006AddressError_AddressErrorAddress Error Trap Vector
2trap · 0x000008NVMError_NVMErrorNVM Error Trap Vector
3trap · 0x00000AStackError_StackErrorStack Error Trap Vector
4trap · 0x00000CMathError_MathErrorMath Error Trap Vector
6trap · 0x000010GeneralError_GeneralErrorGeneral Soft Trap Vector
8IRQ 0 · 0x000014INT0Interrupt_INT0InterruptINT0 - External Interrupt 0
9IRQ 1 · 0x000016CCT1Interrupt_CCT1InterruptCCT1 - Capture/Compare Timer 1
10IRQ 2 · 0x000018CCT2Interrupt_CCT2InterruptCCT2 - Capture/Compare Timer 2
11IRQ 3 · 0x00001AT1Interrupt_T1InterruptT1 - Timer1
12IRQ 4 · 0x00001CDMA0Interrupt_DMA0InterruptDMA0 - Direct Memory Access 0
15IRQ 7 · 0x000022T2Interrupt_T2InterruptT2 - Timer2
16IRQ 8 · 0x000024T3Interrupt_T3InterruptT3 - Timer3
17IRQ 9 · 0x000026SPI1Interrupt_SPI1InterruptSPI1 - SPI1 General
18IRQ 10 · 0x000028SPI1TXInterrupt_SPI1TXInterruptSPI1TX - SPI1 Transfer Done
19IRQ 11 · 0x00002AU1RXInterrupt_U1RXInterruptU1RX - UART1 Receiver
20IRQ 12 · 0x00002CU1TXInterrupt_U1TXInterruptU1TX - UART1 Transmitter
21IRQ 13 · 0x00002EADC1Interrupt_ADC1InterruptADC1 - A/D Converter 1
22IRQ 14 · 0x000030DMA1Interrupt_DMA1InterruptDMA1 - Direct Memory Access 1
23IRQ 15 · 0x000032NVMInterrupt_NVMInterruptNVM - NVM Program/Erase Complete
24IRQ 16 · 0x000034SI2C1Interrupt_SI2C1InterruptSI2C1 - I2C1 Slave Events
25IRQ 17 · 0x000036MI2C1Interrupt_MI2C1InterruptMI2C1 - I2C1 Master Events
26IRQ 18 · 0x000038CompInterrupt_CompInterruptCMP - Comparator
27IRQ 19 · 0x00003AIOCInterrupt_IOCInterruptIOC - Interrupt On Change Interrupt
28IRQ 20 · 0x00003CINT1Interrupt_INT1InterruptINT1 - External Interrupt 1
30IRQ 22 · 0x000040CCP5Interrupt_CCP5InterruptCCP5 - Capture/Compare 5
31IRQ 23 · 0x000042CCP6Interrupt_CCP6InterruptCCP6 - Capture/Compare 6
32IRQ 24 · 0x000044DMA2Interrupt_DMA2InterruptDMA2 - Direct Memory Access 2
35IRQ 27 · 0x00004AT4Interrupt_T4InterruptT4 - Timer4
36IRQ 28 · 0x00004CT5Interrupt_T5InterruptT5 - Timer5
37IRQ 29 · 0x00004EINT2Interrupt_INT2InterruptINT2 - External Interrupt 2
38IRQ 30 · 0x000050U2RXInterrupt_U2RXInterruptU2RX - UART2 Receiver
39IRQ 31 · 0x000052U2TXInterrupt_U2TXInterruptU2TX - UART2 Transmitter
40IRQ 32 · 0x000054SPI2Interrupt_SPI2InterruptSPI2 - SPI2 General
41IRQ 33 · 0x000056SPI2TXInterrupt_SPI2TXInterruptSPI2TX - SPI2 Transfer Done
44IRQ 36 · 0x00005CDMA3Interrupt_DMA3InterruptDMA3 - Direct Memory Access 3
51IRQ 43 · 0x00006ACCT3Interrupt_CCT3InterruptCCT3 - Capture/Compare Timer 3
52IRQ 44 · 0x00006CCCT4Interrupt_CCT4InterruptCCT4 - Capture/Compare Timer 4
54IRQ 46 · 0x000070DMA4Interrupt_DMA4InterruptDMA4 - Direct Memory Access 4
55IRQ 47 · 0x000072CCT5Interrupt_CCT5InterruptCCT5 - Capture/Compare Timer 5
56IRQ 48 · 0x000074CCT6Interrupt_CCT6InterruptCCT6 - Capture/Compare Timer 6
57IRQ 49 · 0x000076SI2C2Interrupt_SI2C2InterruptSI2C2 - I2C2 Slave Events
58IRQ 50 · 0x000078MI2C2Interrupt_MI2C2InterruptMI2C2 - I2C2 Master Events
59IRQ 51 · 0x00007ACCT7Interrupt_CCT7InterruptCCT7 - Capture/Compare Timer 7
60IRQ 52 · 0x00007CCCT8Interrupt_CCT8InterruptCCT8 - Capture/Compare Timer 8
61IRQ 53 · 0x00007EINT3Interrupt_INT3InterruptINT3 - External Interrupt 3
62IRQ 54 · 0x000080INT4Interrupt_INT4InterruptINT4 - External Interrupt 4
65IRQ 57 · 0x000086SPI4RXInterrupt_SPI4RXInterruptSPI4RX - SPI4 Receive Done
66IRQ 58 · 0x000088SPI1RXInterrupt_SPI1RXInterruptSPI1RX - SPI1 Receive Done
67IRQ 59 · 0x00008ASPI2RXInterrupt_SPI2RXInterruptSPI2RX - SPI2 Receive Done
68IRQ 60 · 0x00008CSPI3RXInterrupt_SPI3RXInterruptSPI3RX - SPI3 Receive Done
69IRQ 61 · 0x00008EDMA5Interrupt_DMA5InterruptDMA5 - Direct Memory Access 5
70IRQ 62 · 0x000090RTCCInterrupt_RTCCInterruptRTCC - Real-Time Clock and Calendar
71IRQ 63 · 0x000092CCP1Interrupt_CCP1InterruptCCP1 - Capture/Compare 1
72IRQ 64 · 0x000094CCP2Interrupt_CCP2InterruptCCP2 - Capture/Compare 2
73IRQ 65 · 0x000096U1ErrInterrupt_U1ErrInterruptU1E - UART1 Error
74IRQ 66 · 0x000098U2ErrInterrupt_U2ErrInterruptU2E - UART2 Error
75IRQ 67 · 0x00009ACRCInterrupt_CRCInterruptCRC - Cyclic Redundancy Check
78IRQ 70 · 0x0000A0SI2C3Interrupt_SI2C3InterruptSI2C3 - I2C3 Slave Events
79IRQ 71 · 0x0000A2MI2C3Interrupt_MI2C3InterruptMI2C3 - I2C3 Master Events
80IRQ 72 · 0x0000A4HLVDInterrupt_HLVDInterruptLVD - Low Voltage Detect
81IRQ 73 · 0x0000A6CCP7Interrupt_CCP7InterruptCCP7 - Capture/Compare 7
82IRQ 74 · 0x0000A8CCP8Interrupt_CCP8InterruptCCP8 - Capture/Compare 8
86IRQ 78 · 0x0000B0DAC1Interrupt_DAC1InterruptDAC1 - Digital to Analog Converter Interrupt
89IRQ 81 · 0x0000B6U3ErrInterrupt_U3ErrInterruptU3E - UART3 Error
90IRQ 82 · 0x0000B8U3RXInterrupt_U3RXInterruptU3RX - UART3 Receiver
91IRQ 83 · 0x0000BAU3TXInterrupt_U3TXInterruptU3TX - UART3 Transmitter
92IRQ 84 · 0x0000BCI2C1BCInterrupt_I2C1BCInterruptI2C1BC - I2C1 Bus Collision
93IRQ 85 · 0x0000BEI2C2BCInterrupt_I2C2BCInterruptI2C2BC - I2C2 Bus Collision
94IRQ 86 · 0x0000C0USB1Interrupt_USB1InterruptUSB - USB Interrupt
95IRQ 87 · 0x0000C2U4ErrInterrupt_U4ErrInterruptU4E - UART4 Error
96IRQ 88 · 0x0000C4U4RXInterrupt_U4RXInterruptU4RX - UART4 Receiver
97IRQ 89 · 0x0000C6U4TXInterrupt_U4TXInterruptU4TX - UART4 Transmitter
98IRQ 90 · 0x0000C8SPI3Interrupt_SPI3InterruptSPI3 - SPI3 General
99IRQ 91 · 0x0000CASPI3TXInterrupt_SPI3TXInterruptSPI3TX - SPI3 Transfer Done
100IRQ 92 · 0x0000CCSPI4Interrupt_SPI4InterruptSPI4 - SPI4 General
101IRQ 93 · 0x0000CESPI4TXInterrupt_SPI4TXInterruptSPI4TX - SPI4 Transfer Done
102IRQ 94 · 0x0000D0CCP3Interrupt_CCP3InterruptCCP3 - Capture/Compare 3
103IRQ 95 · 0x0000D2CCP4Interrupt_CCP4InterruptCCP4 - Capture/Compare 4
104IRQ 96 · 0x0000D4CLC1Interrupt_CLC1InterruptCLC1 - Configurable Logic Cell 1
105IRQ 97 · 0x0000D6CLC2Interrupt_CLC2InterruptCLC2 - Configurable Logic Cell 2
106IRQ 98 · 0x0000D8CLC3Interrupt_CLC3InterruptCLC3 - Configurable Logic Cell 3
107IRQ 99 · 0x0000DACLC4Interrupt_CLC4InterruptCLC4 - Configurable Logic Cell 4
108IRQ 100 · 0x0000DCLCDInterrupt_LCDInterruptLCD - LCD Request Interrupt
109IRQ 101 · 0x0000DELCDATInterrupt_LCDATInterruptLCD - LCD Automation Timer
114IRQ 106 · 0x0000E8FSTInterrupt_FSTInterruptFST - FRC Self Tuning Interrupt
116IRQ 108 · 0x0000ECECCSBEInterrupt_ECCSBEInterruptECC Single-bit Error
117IRQ 109 · 0x0000EEI2C3BCInterrupt_I2C3BCInterruptI2C3BC - I2C3 Bus Collision
118IRQ 110 · 0x0000F0RTCCTSInterrupt_RTCCTSInterruptRTCCTS - Real-Time Clock and Calendar Timestamp
119IRQ 111 · 0x0000F2U5RXInterrupt_U5RXInterruptU5RX - UART5 Receiver
120IRQ 112 · 0x0000F4U5TXInterrupt_U5TXInterruptU5RTX - UART5 Transmitter
121IRQ 113 · 0x0000F6U5ErrInterrupt_U5ErrInterruptU5E - UART5 Error
122IRQ 114 · 0x0000F8U6RXInterrupt_U6RXInterruptU6RX - UART6 Receiver
123IRQ 115 · 0x0000FAU6TXInterrupt_U6TXInterruptU6TX - UART6 Transmiter
124IRQ 116 · 0x0000FCU6ErrInterrupt_U6ErrInterruptU6E - UART6 Error
125IRQ 117 · 0x0000FEJTAGInterrupt_JTAGInterruptJTAG - JTAG