dsPIC33EP512GP806 interrupt vectors
Reset at 0x000000 (a GOTO to the program), then the interrupt vector table from 0x000004: first the 7 traps (non-maskable faults: oscillator failure, address error, stack error, math error…), then the 103 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).
| Vector | IRQ · address | Name | Handler | Source |
|---|---|---|---|---|
| – | 0x000000 | RESET | reset: main() after start-up | Reset |
| 0 | trap · 0x000004 | OscillatorFail | _OscillatorFail | Oscillator Fail Trap vector |
| 1 | trap · 0x000006 | AddressError | _AddressError | Address error Trap vector |
| 2 | trap · 0x000008 | HardTrapError | _HardTrapError | Generic Hard Trap vector |
| 3 | trap · 0x00000A | StackError | _StackError | Stack Error Trap Vector |
| 4 | trap · 0x00000C | MathError | _MathError | Math Error Trap vector |
| 5 | trap · 0x00000E | DMACError | _DMACError | DMAC Error Trap vector |
| 6 | trap · 0x000010 | SoftTrapError | _SoftTrapError | Generic Soft Trap vector |
| 8 | IRQ 0 · 0x000014 | INT0Interrupt | _INT0Interrupt | External Interrupt 0 |
| 9 | IRQ 1 · 0x000016 | IC1Interrupt | _IC1Interrupt | Input Compare 1 |
| 10 | IRQ 2 · 0x000018 | OC1Interrupt | _OC1Interrupt | Output Compare 1 |
| 11 | IRQ 3 · 0x00001A | T1Interrupt | _T1Interrupt | Timer 1 |
| 12 | IRQ 4 · 0x00001C | DMA0Interrupt | _DMA0Interrupt | DMA Channel 0 |
| 13 | IRQ 5 · 0x00001E | IC2Interrupt | _IC2Interrupt | Input Capture 2 |
| 14 | IRQ 6 · 0x000020 | OC2Interrupt | _OC2Interrupt | Output Compare 2 |
| 15 | IRQ 7 · 0x000022 | T2Interrupt | _T2Interrupt | Timer 2 |
| 16 | IRQ 8 · 0x000024 | T3Interrupt | _T3Interrupt | Timer 3 |
| 17 | IRQ 9 · 0x000026 | SPI1ErrInterrupt | _SPI1ErrInterrupt | SPI1 error |
| 18 | IRQ 10 · 0x000028 | SPI1Interrupt | _SPI1Interrupt | SPI1 transfer done |
| 19 | IRQ 11 · 0x00002A | U1RXInterrupt | _U1RXInterrupt | UART1 Receiver |
| 20 | IRQ 12 · 0x00002C | U1TXInterrupt | _U1TXInterrupt | UART1 Transmitter |
| 21 | IRQ 13 · 0x00002E | AD1Interrupt | _AD1Interrupt | ADC1 Convert Done |
| 22 | IRQ 14 · 0x000030 | DMA1Interrupt | _DMA1Interrupt | DMA Channel 1 |
| 23 | IRQ 15 · 0x000032 | NVMInterrupt | _NVMInterrupt | NVM Interrupt |
| 24 | IRQ 16 · 0x000034 | SI2C1Interrupt | _SI2C1Interrupt | I2C1 Slave Events |
| 25 | IRQ 17 · 0x000036 | MI2C1Interrupt | _MI2C1Interrupt | I2C1 Master Events |
| 26 | IRQ 18 · 0x000038 | CM1Interrupt | _CM1Interrupt | Analog Comparator Combined Interrupt |
| 27 | IRQ 19 · 0x00003A | CNInterrupt | _CNInterrupt | Change Notification Interrupt |
| 28 | IRQ 20 · 0x00003C | INT1Interrupt | _INT1Interrupt | External Interrupt 1 |
| 29 | IRQ 21 · 0x00003E | AD2Interrupt | _AD2Interrupt | ADC2 Convert Done |
| 30 | IRQ 22 · 0x000040 | IC7Interrupt | _IC7Interrupt | Input Compare 7 |
| 31 | IRQ 23 · 0x000042 | IC8Interrupt | _IC8Interrupt | Input Compare 8 |
| 32 | IRQ 24 · 0x000044 | DMA2Interrupt | _DMA2Interrupt | DMA Channel 2 |
| 33 | IRQ 25 · 0x000046 | OC3Interrupt | _OC3Interrupt | Output Compare 3 |
| 34 | IRQ 26 · 0x000048 | OC4Interrupt | _OC4Interrupt | Output Compare 4 |
| 35 | IRQ 27 · 0x00004A | T4Interrupt | _T4Interrupt | Timer 4 |
| 36 | IRQ 28 · 0x00004C | T5Interrupt | _T5Interrupt | Timer 5 |
| 37 | IRQ 29 · 0x00004E | INT2Interrupt | _INT2Interrupt | External Interrupt 2 |
| 38 | IRQ 30 · 0x000050 | U2RXInterrupt | _U2RXInterrupt | UART2 Receiver |
| 39 | IRQ 31 · 0x000052 | U2TXInterrupt | _U2TXInterrupt | UART2 Transmitter |
| 40 | IRQ 32 · 0x000054 | SPI2ErrInterrupt | _SPI2ErrInterrupt | SPI2 error |
| 41 | IRQ 33 · 0x000056 | SPI2Interrupt | _SPI2Interrupt | SPI2 transfer done |
| 42 | IRQ 34 · 0x000058 | C1RxRdyInterrupt | _C1RxRdyInterrupt | ECAN1 Receive Data Ready |
| 43 | IRQ 35 · 0x00005A | C1Interrupt | _C1Interrupt | ECAN1 Event |
| 44 | IRQ 36 · 0x00005C | DMA3Interrupt | _DMA3Interrupt | DMA Channel 3 |
| 45 | IRQ 37 · 0x00005E | IC3Interrupt | _IC3Interrupt | Input Capture 3 |
| 46 | IRQ 38 · 0x000060 | IC4Interrupt | _IC4Interrupt | Input Capture 4 |
| 47 | IRQ 39 · 0x000062 | IC5Interrupt | _IC5Interrupt | Input Capture 5 |
| 48 | IRQ 40 · 0x000064 | IC6Interrupt | _IC6Interrupt | Input Capture 6 |
| 49 | IRQ 41 · 0x000066 | OC5Interrupt | _OC5Interrupt | Output Compare 5 |
| 50 | IRQ 42 · 0x000068 | OC6Interrupt | _OC6Interrupt | Output Compare 6 |
| 51 | IRQ 43 · 0x00006A | OC7Interrupt | _OC7Interrupt | Output Compare 7 |
| 52 | IRQ 44 · 0x00006C | OC8Interrupt | _OC8Interrupt | Output Compare 8 |
| 53 | IRQ 45 · 0x00006E | PMPInterrupt | _PMPInterrupt | PMP Interrupt |
| 54 | IRQ 46 · 0x000070 | DMA4Interrupt | _DMA4Interrupt | DMA Channel 4 |
| 55 | IRQ 47 · 0x000072 | T6Interrupt | _T6Interrupt | Timer 6 |
| 56 | IRQ 48 · 0x000074 | T7Interrupt | _T7Interrupt | Timer 7 |
| 57 | IRQ 49 · 0x000076 | SI2C2Interrupt | _SI2C2Interrupt | I2C2 Slave Events |
| 58 | IRQ 50 · 0x000078 | MI2C2Interrupt | _MI2C2Interrupt | I2C2 Master Events |
| 59 | IRQ 51 · 0x00007A | T8Interrupt | _T8Interrupt | Timer 8 |
| 60 | IRQ 52 · 0x00007C | T9Interrupt | _T9Interrupt | Timer 9 |
| 61 | IRQ 53 · 0x00007E | INT3Interrupt | _INT3Interrupt | External Interrupt 3 |
| 62 | IRQ 54 · 0x000080 | INT4Interrupt | _INT4Interrupt | External Interrupt 4 |
| 63 | IRQ 55 · 0x000082 | C2RxRdyInterrupt | _C2RxRdyInterrupt | ECAN2 Receive Data Ready |
| 64 | IRQ 56 · 0x000084 | C2Interrupt | _C2Interrupt | ECAN2 Event |
| 67 | IRQ 59 · 0x00008A | DCIEInterrupt | _DCIEInterrupt | DCI Fault Interrupt |
| 68 | IRQ 60 · 0x00008C | DCIInterrupt | _DCIInterrupt | DCI Transfer Done |
| 69 | IRQ 61 · 0x00008E | DMA5Interrupt | _DMA5Interrupt | DMA Channel 5 |
| 70 | IRQ 62 · 0x000090 | RTCCInterrupt | _RTCCInterrupt | RTCC Interrupt |
| 73 | IRQ 65 · 0x000096 | U1ErrInterrupt | _U1ErrInterrupt | UART1 Error |
| 74 | IRQ 66 · 0x000098 | U2ErrInterrupt | _U2ErrInterrupt | UART2 Error |
| 75 | IRQ 67 · 0x00009A | CRCInterrupt | _CRCInterrupt | CRC Generator Interrupt |
| 76 | IRQ 68 · 0x00009C | DMA6Interrupt | _DMA6Interrupt | DMA Channel 6 |
| 77 | IRQ 69 · 0x00009E | DMA7Interrupt | _DMA7Interrupt | DMA Channel 7 |
| 78 | IRQ 70 · 0x0000A0 | C1TxReqInterrupt | _C1TxReqInterrupt | ECAN1 Transmit Data Request |
| 79 | IRQ 71 · 0x0000A2 | C2TxReqInterrupt | _C2TxReqInterrupt | ECAN2 Transmit Data Request |
| 89 | IRQ 81 · 0x0000B6 | U3ErrInterrupt | _U3ErrInterrupt | UART3 Error |
| 90 | IRQ 82 · 0x0000B8 | U3RXInterrupt | _U3RXInterrupt | UART3 Receiver |
| 91 | IRQ 83 · 0x0000BA | U3TXInterrupt | _U3TXInterrupt | UART3 Transmitter |
| 95 | IRQ 87 · 0x0000C2 | U4ErrInterrupt | _U4ErrInterrupt | UART4 Error |
| 96 | IRQ 88 · 0x0000C4 | U4RXInterrupt | _U4RXInterrupt | UART4 Receiver |
| 97 | IRQ 89 · 0x0000C6 | U4TXInterrupt | _U4TXInterrupt | UART4 Transmitter |
| 98 | IRQ 90 · 0x0000C8 | SPI3ErrInterrupt | _SPI3ErrInterrupt | SPI3 error |
| 99 | IRQ 91 · 0x0000CA | SPI3Interrupt | _SPI3Interrupt | SPI3 transfer done |
| 100 | IRQ 92 · 0x0000CC | OC9Interrupt | _OC9Interrupt | Output Compare 9 |
| 101 | IRQ 93 · 0x0000CE | IC9Interrupt | _IC9Interrupt | Input Capture 9 |
| 126 | IRQ 118 · 0x000100 | DMA8Interrupt | _DMA8Interrupt | DMA Channel 8 |
| 127 | IRQ 119 · 0x000102 | DMA9Interrupt | _DMA9Interrupt | DMA Channel 9 |
| 128 | IRQ 120 · 0x000104 | DMA10Interrupt | _DMA10Interrupt | DMA Channel 10 |
| 129 | IRQ 121 · 0x000106 | DMA11Interrupt | _DMA11Interrupt | DMA Channel 11 |
| 130 | IRQ 122 · 0x000108 | SPI4ErrInterrupt | _SPI4ErrInterrupt | SPI4 error |
| 131 | IRQ 123 · 0x00010A | SPI4Interrupt | _SPI4Interrupt | SPI4 transfer done |
| 132 | IRQ 124 · 0x00010C | OC10Interrupt | _OC10Interrupt | Output Compare 10 |
| 133 | IRQ 125 · 0x00010E | IC10Interrupt | _IC10Interrupt | Input Capture 10 |
| 134 | IRQ 126 · 0x000110 | OC11Interrupt | _OC11Interrupt | Output Compare 11 |
| 135 | IRQ 127 · 0x000112 | IC11Interrupt | _IC11Interrupt | Input Capture 11 |
| 136 | IRQ 128 · 0x000114 | OC12Interrupt | _OC12Interrupt | Output Compare 12 |
| 137 | IRQ 129 · 0x000116 | IC12Interrupt | _IC12Interrupt | Input Capture 12 |
| 138 | IRQ 130 · 0x000118 | DMA12Interrupt | _DMA12Interrupt | DMA Channel 12 |
| 139 | IRQ 131 · 0x00011A | DMA13Interrupt | _DMA13Interrupt | DMA Channel 13 |
| 140 | IRQ 132 · 0x00011C | DMA14Interrupt | _DMA14Interrupt | DMA Channel 14 |
| 142 | IRQ 134 · 0x000120 | OC13Interrupt | _OC13Interrupt | Output Compare 13 |
| 143 | IRQ 135 · 0x000122 | IC13Interrupt | _IC13Interrupt | Input Capture 13 |
| 144 | IRQ 136 · 0x000124 | OC14Interrupt | _OC14Interrupt | Output Compare 14 |
| 145 | IRQ 137 · 0x000126 | IC14Interrupt | _IC14Interrupt | Input Capture 14 |
| 146 | IRQ 138 · 0x000128 | OC15Interrupt | _OC15Interrupt | Output Compare 15 |
| 147 | IRQ 139 · 0x00012A | IC15Interrupt | _IC15Interrupt | Input Capture 15 |
| 148 | IRQ 140 · 0x00012C | OC16Interrupt | _OC16Interrupt | Output Compare 16 |
| 149 | IRQ 141 · 0x00012E | IC16Interrupt | _IC16Interrupt | Input Capture 16 |
| 150 | IRQ 142 · 0x000130 | ICDInterrupt | _ICDInterrupt | ICD Application |
| 151 | IRQ 143 · 0x000132 | JTAGInterrupt | _JTAGInterrupt | JTAG Programming |