dsPIC33FJ64GP804 interrupt vectors

Reset at 0x000000 (a GOTO to the program), then the interrupt vector table from 0x000004: first the 5 traps (non-maskable faults: oscillator failure, address error, stack error, math error…), then the 78 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
1trap · 0x000006OscillatorFail_OscillatorFailOscillator Fail Trap Vector
2trap · 0x000008AddressError_AddressErrorAddress Error Trap Vector
3trap · 0x00000AStackError_StackErrorStack Error Trap Vector
4trap · 0x00000CMathError_MathErrorMath Error Trap Vector
5trap · 0x00000EDMACError_DMACErrorDMAC Error Trap Vector
8IRQ 0 · 0x000014INT0Interrupt_INT0InterruptINT0 - External Interrupt 0
9IRQ 1 · 0x000016IC1Interrupt_IC1InterruptIC1 - Input Compare 1
10IRQ 2 · 0x000018OC1Interrupt_OC1InterruptOC1 - Output Compare 1
11IRQ 3 · 0x00001AT1Interrupt_T1InterruptT1 - Timer1
12IRQ 4 · 0x00001CDMA0Interrupt_DMA0InterruptDMA0 - DMA Channel 0
13IRQ 5 · 0x00001EIC2Interrupt_IC2InterruptIC2 - Input Capture 2
14IRQ 6 · 0x000020OC2Interrupt_OC2InterruptOC2 - Output Compare 2
15IRQ 7 · 0x000022T2Interrupt_T2InterruptT2 - Timer2
16IRQ 8 · 0x000024T3Interrupt_T3InterruptT3 - Timer3
17IRQ 9 · 0x000026SPI1ErrInterrupt_SPI1ErrInterruptSPI1E - SPI1 Error
18IRQ 10 · 0x000028SPI1Interrupt_SPI1InterruptSPI1 - 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 - DMA Channel 1
24IRQ 16 · 0x000034SI2C1Interrupt_SI2C1InterruptSI2C1 - I2C1 Slave Events
25IRQ 17 · 0x000036MI2C1Interrupt_MI2C1InterruptMI2C1 - I2C1 Master Events
26IRQ 18 · 0x000038CMPInterrupt_CMPInterruptCMP - Comparator Interrupt
27IRQ 19 · 0x00003ACNInterrupt_CNInterruptChange Notification Interrupt
28IRQ 20 · 0x00003CINT1Interrupt_INT1InterruptINT1 - External Interrupt 1
30IRQ 22 · 0x000040IC7Interrupt_IC7InterruptIC7 - Input Capture 7
31IRQ 23 · 0x000042IC8Interrupt_IC8InterruptIC8 - Input Capture 8
32IRQ 24 · 0x000044DMA2Interrupt_DMA2InterruptDMA2 - DMA Channel 2
33IRQ 25 · 0x000046OC3Interrupt_OC3InterruptOC3 - Output Compare 3
34IRQ 26 · 0x000048OC4Interrupt_OC4InterruptOC4 - Output Compare 4
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 · 0x000054SPI2ErrInterrupt_SPI2ErrInterruptSPI2E - SPI2 Error
41IRQ 33 · 0x000056SPI2Interrupt_SPI2InterruptSPI2 - SPI2 Transfer Done
42IRQ 34 · 0x000058C1RxRdyInterrupt_C1RxRdyInterruptC1RX - ECAN1 Receive Data Ready
43IRQ 35 · 0x00005AC1Interrupt_C1InterruptC1 - ECAN1 Event
44IRQ 36 · 0x00005CDMA3Interrupt_DMA3InterruptDMA3 - DMA Channel 3
45IRQ 37 · 0x00005EInterrupt37_Interrupt37Reserved
46IRQ 38 · 0x000060Interrupt38_Interrupt38Reserved
47IRQ 39 · 0x000062Interrupt39_Interrupt39Reserved
48IRQ 40 · 0x000064Interrupt40_Interrupt40Reserved
49IRQ 41 · 0x000066Interrupt41_Interrupt41Reserved
50IRQ 42 · 0x000068Interrupt42_Interrupt42Reserved
51IRQ 43 · 0x00006AInterrupt43_Interrupt43Reserved
52IRQ 44 · 0x00006CInterrupt44_Interrupt44Reserved
53IRQ 45 · 0x00006EPMPInterrupt_PMPInterruptPMP - Parallel Master Port
54IRQ 46 · 0x000070DMA4Interrupt_DMA4InterruptDMA4 - DMA Channel 4
55IRQ 47 · 0x000072Interrupt47_Interrupt47Reserved
56IRQ 48 · 0x000074Interrupt48_Interrupt48Reserved
57IRQ 49 · 0x000076Interrupt49_Interrupt49Reserved
58IRQ 50 · 0x000078Interrupt50_Interrupt50Reserved
59IRQ 51 · 0x00007AInterrupt51_Interrupt51Reserved
60IRQ 52 · 0x00007CInterrupt52_Interrupt52Reserved
61IRQ 53 · 0x00007EInterrupt53_Interrupt53Reserved
62IRQ 54 · 0x000080Interrupt54_Interrupt54Reserved
63IRQ 55 · 0x000082Interrupt55_Interrupt55Reserved
64IRQ 56 · 0x000084Interrupt56_Interrupt56Reserved
65IRQ 57 · 0x000086Interrupt57_Interrupt57Reserved
66IRQ 58 · 0x000088Interrupt58_Interrupt58Reserved
67IRQ 59 · 0x00008AInterrupt59_Interrupt59Reserved
68IRQ 60 · 0x00008CDCIInterrupt_DCIInterruptDCID - DCI Transfer Done
69IRQ 61 · 0x00008EDMA5Interrupt_DMA5InterruptDMA5 - DMA Channel 5
70IRQ 62 · 0x000090RTCCInterrupt_RTCCInterruptRTCC - Real-Time Clock and Calendar
71IRQ 63 · 0x000092Interrupt63_Interrupt63Reserved
72IRQ 64 · 0x000094Interrupt64_Interrupt64Reserved
73IRQ 65 · 0x000096U1ErrInterrupt_U1ErrInterruptU1E - UART1 Error
74IRQ 66 · 0x000098U2ErrInterrupt_U2ErrInterruptU2E - UART2 Error
75IRQ 67 · 0x00009ACRCInterrupt_CRCInterruptCRC - Cyclic Redunancy Check
76IRQ 68 · 0x00009CDMA6Interrupt_DMA6InterruptDMA6 - DMA Channel 6
77IRQ 69 · 0x00009EDMA7Interrupt_DMA7InterruptDMA7 - DMA Channel 7
78IRQ 70 · 0x0000A0C1TxReqInterrupt_C1TxReqInterruptC1TX - ECAN1 Transmit Data Request
79IRQ 71 · 0x0000A2Interrupt71_Interrupt71Reserved
80IRQ 72 · 0x0000A4Interrupt72_Interrupt72Reserved
81IRQ 73 · 0x0000A6Interrupt73_Interrupt73Reserved
82IRQ 74 · 0x0000A8Interrupt74_Interrupt74Reserved
83IRQ 75 · 0x0000AAInterrupt75_Interrupt75Reserved
84IRQ 76 · 0x0000ACInterrupt76_Interrupt76Reserved
85IRQ 77 · 0x0000AEInterrupt77_Interrupt77Reserved
86IRQ 78 · 0x0000B0DAC1RInterrupt_DAC1RInterruptDAC1 - Right Data Request
87IRQ 79 · 0x0000B2DAC1LInterrupt_DAC1LInterruptDAC1 - Left Data Request