1 /*
2  * Header file for PIC32CX1025SG61128
3  *
4  * Copyright (c) 2023 Microchip Technology Inc. and its subsidiaries.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *   http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  */
19 
20 /* File generated from device description file (ATDF) version 2023-03-17T09:48:59Z */
21 #ifndef _PIC32CX1025SG61128_H_
22 #define _PIC32CX1025SG61128_H_
23 
24 /* Header version uses Semantic Versioning 2.0.0 (https://semver.org/) */
25 #define HEADER_FORMAT_VERSION "2.1.1"
26 
27 #define HEADER_FORMAT_VERSION_MAJOR (2)
28 #define HEADER_FORMAT_VERSION_MINOR (1)
29 #define HEADER_FORMAT_VERSION_PATCH (1)
30 
31 /* PIC32CX1025SG61128 definitions
32   This file defines all structures and symbols for PIC32CX1025SG61128:
33     - registers and bitfields
34     - peripheral base address
35     - peripheral ID
36     - PIO definitions
37 */
38 
39 #ifdef __cplusplus
40  extern "C" {
41 #endif
42 
43 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
44 #  include <stdint.h>
45 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
46 
47 #if !defined(SKIP_INTEGER_LITERALS)
48 #  if defined(_UINT8_) || defined(_UINT16_) || defined(_UINT32_)
49 #    error "Integer constant value macros already defined elsewhere"
50 #  endif
51 
52 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
53 /* Macros that deal with sizes of integer constants for C/C++ */
54 #  define _UINT8_(x)   ((uint8_t)(x))    /* C code: 8-bits unsigned integer constant value */
55 #  define _UINT16_(x)  ((uint16_t)(x))   /* C code: 16-bits unsigned integer constant value */
56 #  define _UINT32_(x)  ((uint32_t)(x))   /* C code: 32-bits unsigned integer constant value */
57 
58 #else /* Assembler */
59 
60 #  define _UINT8_(x) x    /* Assembler: 8-bits unsigned integer constant value */
61 #  define _UINT16_(x) x   /* Assembler: 16-bits unsigned integer constant value */
62 #  define _UINT32_(x) x   /* Assembler: 32-bits unsigned integer constant value */
63 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
64 #endif /* SKIP_INTEGER_LITERALS */
65 
66 /* ************************************************************************** */
67 /* CMSIS DEFINITIONS FOR PIC32CX1025SG61128                                 */
68 /* ************************************************************************** */
69 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
70 /* Interrupt Number Definition */
71 typedef enum IRQn
72 {
73 /******  CORTEX-M4 Processor Exceptions Numbers ******************************/
74   Reset_IRQn                = -15, /* -15 Reset Vector, invoked on Power up and warm reset */
75   NonMaskableInt_IRQn       = -14, /* -14 Non maskable Interrupt, cannot be stopped or preempted */
76   HardFault_IRQn            = -13, /* -13 Hard Fault, all classes of Fault    */
77   MemoryManagement_IRQn     = -12, /* -12 Memory Management, MPU mismatch, including Access Violation and No Match */
78   BusFault_IRQn             = -11, /* -11 Bus Fault, Pre-Fetch-, Memory Access Fault, other address/memory related Fault */
79   UsageFault_IRQn           = -10, /* -10 Usage Fault, i.e. Undef Instruction, Illegal State Transition */
80   SVCall_IRQn               =  -5, /* -5  System Service Call via SVC instruction */
81   DebugMonitor_IRQn         =  -4, /* -4  Debug Monitor                       */
82   PendSV_IRQn               =  -2, /* -2  Pendable request for system service */
83   SysTick_IRQn              =  -1, /* -1  System Tick Timer                   */
84 
85 /******  PIC32CX1025SG61128 specific Interrupt Numbers ***********************************/
86   PM_IRQn                   =   0, /* 0   Power Manager (PM)                  */
87   MCLK_IRQn                 =   1, /* 1   Main Clock (MCLK)                   */
88   OSCCTRL_XOSC0_IRQn        =   2, /* 2   Oscillators Control (OSCCTRL)       */
89   OSCCTRL_XOSC1_IRQn        =   3, /* 3   Oscillators Control (OSCCTRL)       */
90   OSCCTRL_DFLL_IRQn         =   4, /* 4   Oscillators Control (OSCCTRL)       */
91   OSCCTRL_DPLL0_IRQn        =   5, /* 5   Oscillators Control (OSCCTRL)       */
92   OSCCTRL_DPLL1_IRQn        =   6, /* 6   Oscillators Control (OSCCTRL)       */
93   OSC32KCTRL_IRQn           =   7, /* 7   32kHz Oscillators Control (OSC32KCTRL) */
94   SUPC_OTHER_IRQn           =   8, /* 8   Supply Controller (SUPC)            */
95   SUPC_BODDET_IRQn          =   9, /* 9   Supply Controller (SUPC)            */
96   WDT_IRQn                  =  10, /* 10  Watchdog Timer (WDT)                */
97   RTC_IRQn                  =  11, /* 11  Real-Time Counter (RTC)             */
98   EIC_EXTINT_0_IRQn         =  12, /* 12  External Interrupt Controller (EIC) */
99   EIC_EXTINT_1_IRQn         =  13, /* 13  External Interrupt Controller (EIC) */
100   EIC_EXTINT_2_IRQn         =  14, /* 14  External Interrupt Controller (EIC) */
101   EIC_EXTINT_3_IRQn         =  15, /* 15  External Interrupt Controller (EIC) */
102   EIC_EXTINT_4_IRQn         =  16, /* 16  External Interrupt Controller (EIC) */
103   EIC_EXTINT_5_IRQn         =  17, /* 17  External Interrupt Controller (EIC) */
104   EIC_EXTINT_6_IRQn         =  18, /* 18  External Interrupt Controller (EIC) */
105   EIC_EXTINT_7_IRQn         =  19, /* 19  External Interrupt Controller (EIC) */
106   EIC_EXTINT_8_IRQn         =  20, /* 20  External Interrupt Controller (EIC) */
107   EIC_EXTINT_9_IRQn         =  21, /* 21  External Interrupt Controller (EIC) */
108   EIC_EXTINT_10_IRQn        =  22, /* 22  External Interrupt Controller (EIC) */
109   EIC_EXTINT_11_IRQn        =  23, /* 23  External Interrupt Controller (EIC) */
110   EIC_EXTINT_12_IRQn        =  24, /* 24  External Interrupt Controller (EIC) */
111   EIC_EXTINT_13_IRQn        =  25, /* 25  External Interrupt Controller (EIC) */
112   EIC_EXTINT_14_IRQn        =  26, /* 26  External Interrupt Controller (EIC) */
113   EIC_EXTINT_15_IRQn        =  27, /* 27  External Interrupt Controller (EIC) */
114   FREQM_IRQn                =  28, /* 28  Frequency Meter (FREQM)             */
115   NVMCTRL_0_IRQn            =  29, /* 29  Non-Volatile Memory Controller (NVMCTRL) */
116   NVMCTRL_1_IRQn            =  30, /* 30  Non-Volatile Memory Controller (NVMCTRL) */
117   DMAC_0_IRQn               =  31, /* 31  Direct Memory Access Controller (DMAC) */
118   DMAC_1_IRQn               =  32, /* 32  Direct Memory Access Controller (DMAC) */
119   DMAC_2_IRQn               =  33, /* 33  Direct Memory Access Controller (DMAC) */
120   DMAC_3_IRQn               =  34, /* 34  Direct Memory Access Controller (DMAC) */
121   DMAC_OTHER_IRQn           =  35, /* 35  Direct Memory Access Controller (DMAC) */
122   EVSYS_0_IRQn              =  36, /* 36  Event System Interface (EVSYS)      */
123   EVSYS_1_IRQn              =  37, /* 37  Event System Interface (EVSYS)      */
124   EVSYS_2_IRQn              =  38, /* 38  Event System Interface (EVSYS)      */
125   EVSYS_3_IRQn              =  39, /* 39  Event System Interface (EVSYS)      */
126   EVSYS_OTHER_IRQn          =  40, /* 40  Event System Interface (EVSYS)      */
127   PAC_IRQn                  =  41, /* 41  Peripheral Access Controller (PAC)  */
128   RAMECC_IRQn               =  45, /* 45  RAM ECC (RAMECC)                    */
129   SERCOM0_0_IRQn            =  46, /* 46  Serial Communication Interface (SERCOM0) */
130   SERCOM0_1_IRQn            =  47, /* 47  Serial Communication Interface (SERCOM0) */
131   SERCOM0_2_IRQn            =  48, /* 48  Serial Communication Interface (SERCOM0) */
132   SERCOM0_OTHER_IRQn        =  49, /* 49  Serial Communication Interface (SERCOM0) */
133   SERCOM1_0_IRQn            =  50, /* 50  Serial Communication Interface (SERCOM1) */
134   SERCOM1_1_IRQn            =  51, /* 51  Serial Communication Interface (SERCOM1) */
135   SERCOM1_2_IRQn            =  52, /* 52  Serial Communication Interface (SERCOM1) */
136   SERCOM1_OTHER_IRQn        =  53, /* 53  Serial Communication Interface (SERCOM1) */
137   SERCOM2_0_IRQn            =  54, /* 54  Serial Communication Interface (SERCOM2) */
138   SERCOM2_1_IRQn            =  55, /* 55  Serial Communication Interface (SERCOM2) */
139   SERCOM2_2_IRQn            =  56, /* 56  Serial Communication Interface (SERCOM2) */
140   SERCOM2_OTHER_IRQn        =  57, /* 57  Serial Communication Interface (SERCOM2) */
141   SERCOM3_0_IRQn            =  58, /* 58  Serial Communication Interface (SERCOM3) */
142   SERCOM3_1_IRQn            =  59, /* 59  Serial Communication Interface (SERCOM3) */
143   SERCOM3_2_IRQn            =  60, /* 60  Serial Communication Interface (SERCOM3) */
144   SERCOM3_OTHER_IRQn        =  61, /* 61  Serial Communication Interface (SERCOM3) */
145   SERCOM4_0_IRQn            =  62, /* 62  Serial Communication Interface (SERCOM4) */
146   SERCOM4_1_IRQn            =  63, /* 63  Serial Communication Interface (SERCOM4) */
147   SERCOM4_2_IRQn            =  64, /* 64  Serial Communication Interface (SERCOM4) */
148   SERCOM4_OTHER_IRQn        =  65, /* 65  Serial Communication Interface (SERCOM4) */
149   SERCOM5_0_IRQn            =  66, /* 66  Serial Communication Interface (SERCOM5) */
150   SERCOM5_1_IRQn            =  67, /* 67  Serial Communication Interface (SERCOM5) */
151   SERCOM5_2_IRQn            =  68, /* 68  Serial Communication Interface (SERCOM5) */
152   SERCOM5_OTHER_IRQn        =  69, /* 69  Serial Communication Interface (SERCOM5) */
153   SERCOM6_0_IRQn            =  70, /* 70  Serial Communication Interface (SERCOM6) */
154   SERCOM6_1_IRQn            =  71, /* 71  Serial Communication Interface (SERCOM6) */
155   SERCOM6_2_IRQn            =  72, /* 72  Serial Communication Interface (SERCOM6) */
156   SERCOM6_OTHER_IRQn        =  73, /* 73  Serial Communication Interface (SERCOM6) */
157   SERCOM7_0_IRQn            =  74, /* 74  Serial Communication Interface (SERCOM7) */
158   SERCOM7_1_IRQn            =  75, /* 75  Serial Communication Interface (SERCOM7) */
159   SERCOM7_2_IRQn            =  76, /* 76  Serial Communication Interface (SERCOM7) */
160   SERCOM7_OTHER_IRQn        =  77, /* 77  Serial Communication Interface (SERCOM7) */
161   CAN0_IRQn                 =  78, /* 78  Control Area Network (CAN0)         */
162   CAN1_IRQn                 =  79, /* 79  Control Area Network (CAN1)         */
163   USB_OTHER_IRQn            =  80, /* 80  Universal Serial Bus (USB)          */
164   USB_SOF_HSOF_IRQn         =  81, /* 81  Universal Serial Bus (USB)          */
165   USB_TRCPT0_IRQn           =  82, /* 82  Universal Serial Bus (USB)          */
166   USB_TRCPT1_IRQn           =  83, /* 83  Universal Serial Bus (USB)          */
167   GMAC_IRQn                 =  84, /* 84  Ethernet MAC (GMAC)                 */
168   TCC0_OTHER_IRQn           =  85, /* 85  Timer Counter Control (TCC0)        */
169   TCC0_MC0_IRQn             =  86, /* 86  Timer Counter Control (TCC0)        */
170   TCC0_MC1_IRQn             =  87, /* 87  Timer Counter Control (TCC0)        */
171   TCC0_MC2_IRQn             =  88, /* 88  Timer Counter Control (TCC0)        */
172   TCC0_MC3_IRQn             =  89, /* 89  Timer Counter Control (TCC0)        */
173   TCC0_MC4_IRQn             =  90, /* 90  Timer Counter Control (TCC0)        */
174   TCC0_MC5_IRQn             =  91, /* 91  Timer Counter Control (TCC0)        */
175   TCC1_OTHER_IRQn           =  92, /* 92  Timer Counter Control (TCC1)        */
176   TCC1_MC0_IRQn             =  93, /* 93  Timer Counter Control (TCC1)        */
177   TCC1_MC1_IRQn             =  94, /* 94  Timer Counter Control (TCC1)        */
178   TCC1_MC2_IRQn             =  95, /* 95  Timer Counter Control (TCC1)        */
179   TCC1_MC3_IRQn             =  96, /* 96  Timer Counter Control (TCC1)        */
180   TCC2_OTHER_IRQn           =  97, /* 97  Timer Counter Control (TCC2)        */
181   TCC2_MC0_IRQn             =  98, /* 98  Timer Counter Control (TCC2)        */
182   TCC2_MC1_IRQn             =  99, /* 99  Timer Counter Control (TCC2)        */
183   TCC2_MC2_IRQn             = 100, /* 100 Timer Counter Control (TCC2)        */
184   TCC3_OTHER_IRQn           = 101, /* 101 Timer Counter Control (TCC3)        */
185   TCC3_MC0_IRQn             = 102, /* 102 Timer Counter Control (TCC3)        */
186   TCC3_MC1_IRQn             = 103, /* 103 Timer Counter Control (TCC3)        */
187   TCC4_OTHER_IRQn           = 104, /* 104 Timer Counter Control (TCC4)        */
188   TCC4_MC0_IRQn             = 105, /* 105 Timer Counter Control (TCC4)        */
189   TCC4_MC1_IRQn             = 106, /* 106 Timer Counter Control (TCC4)        */
190   TC0_IRQn                  = 107, /* 107 Basic Timer Counter (TC0)           */
191   TC1_IRQn                  = 108, /* 108 Basic Timer Counter (TC1)           */
192   TC2_IRQn                  = 109, /* 109 Basic Timer Counter (TC2)           */
193   TC3_IRQn                  = 110, /* 110 Basic Timer Counter (TC3)           */
194   TC4_IRQn                  = 111, /* 111 Basic Timer Counter (TC4)           */
195   TC5_IRQn                  = 112, /* 112 Basic Timer Counter (TC5)           */
196   TC6_IRQn                  = 113, /* 113 Basic Timer Counter (TC6)           */
197   TC7_IRQn                  = 114, /* 114 Basic Timer Counter (TC7)           */
198   PDEC_OTHER_IRQn           = 115, /* 115 Quadrature Decodeur (PDEC)          */
199   PDEC_MC0_IRQn             = 116, /* 116 Quadrature Decodeur (PDEC)          */
200   PDEC_MC1_IRQn             = 117, /* 117 Quadrature Decodeur (PDEC)          */
201   ADC0_OTHER_IRQn           = 118, /* 118 Analog Digital Converter (ADC0)     */
202   ADC0_RESRDY_IRQn          = 119, /* 119 Analog Digital Converter (ADC0)     */
203   ADC1_OTHER_IRQn           = 120, /* 120 Analog Digital Converter (ADC1)     */
204   ADC1_RESRDY_IRQn          = 121, /* 121 Analog Digital Converter (ADC1)     */
205   AC_IRQn                   = 122, /* 122 Analog Comparators (AC)             */
206   DAC_OTHER_IRQn            = 123, /* 123 Digital-to-Analog Converter (DAC)   */
207   DAC_EMPTY_0_IRQn          = 124, /* 124 Digital-to-Analog Converter (DAC)   */
208   DAC_EMPTY_1_IRQn          = 125, /* 125 Digital-to-Analog Converter (DAC)   */
209   I2S_IRQn                  = 128, /* 128 Inter-IC Sound Interface (I2S)      */
210   PCC_IRQn                  = 129, /* 129 Parallel Capture Controller (PCC)   */
211   AES_IRQn                  = 130, /* 130 Advanced Encryption Standard (AES)  */
212   TRNG_IRQn                 = 131, /* 131 True Random Generator (TRNG)        */
213   ICM_IRQn                  = 132, /* 132 Integrity Check Monitor (ICM)       */
214   PUKCC_IRQn                = 133, /* 133 PUblic-Key Cryptography Controller (PUKCC) */
215   QSPI_IRQn                 = 134, /* 134 Quad SPI interface (QSPI)           */
216   SDHC0_IRQn                = 135, /* 135 SD/MMC Host Controller (SDHC0)      */
217   SDHC1_IRQn                = 136, /* 136 SD/MMC Host Controller (SDHC1)      */
218 
219   PERIPH_MAX_IRQn           = 136  /* Max peripheral ID */
220 } IRQn_Type;
221 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
222 
223 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
224 typedef struct _DeviceVectors
225 {
226   /* Stack pointer */
227   void* pvStack;
228   /* CORTEX-M4 handlers */
229   void* pfnReset_Handler;                        /* -15 Reset Vector, invoked on Power up and warm reset */
230   void* pfnNonMaskableInt_Handler;               /* -14 Non maskable Interrupt, cannot be stopped or preempted */
231   void* pfnHardFault_Handler;                    /* -13 Hard Fault, all classes of Fault */
232   void* pfnMemoryManagement_Handler;             /* -12 Memory Management, MPU mismatch, including Access Violation and No Match */
233   void* pfnBusFault_Handler;                     /* -11 Bus Fault, Pre-Fetch-, Memory Access Fault, other address/memory related Fault */
234   void* pfnUsageFault_Handler;                   /* -10 Usage Fault, i.e. Undef Instruction, Illegal State Transition */
235   void* pvReservedC9;
236   void* pvReservedC8;
237   void* pvReservedC7;
238   void* pvReservedC6;
239   void* pfnSVCall_Handler;                       /*  -5 System Service Call via SVC instruction */
240   void* pfnDebugMonitor_Handler;                 /*  -4 Debug Monitor */
241   void* pvReservedC3;
242   void* pfnPendSV_Handler;                       /*  -2 Pendable request for system service */
243   void* pfnSysTick_Handler;                      /*  -1 System Tick Timer */
244 
245   /* Peripheral handlers */
246   void* pfnPM_Handler;                           /*   0 Power Manager (PM) */
247   void* pfnMCLK_Handler;                         /*   1 Main Clock (MCLK) */
248   void* pfnOSCCTRL_XOSC0_Handler;                /*   2 Oscillators Control (OSCCTRL) */
249   void* pfnOSCCTRL_XOSC1_Handler;                /*   3 Oscillators Control (OSCCTRL) */
250   void* pfnOSCCTRL_DFLL_Handler;                 /*   4 Oscillators Control (OSCCTRL) */
251   void* pfnOSCCTRL_DPLL0_Handler;                /*   5 Oscillators Control (OSCCTRL) */
252   void* pfnOSCCTRL_DPLL1_Handler;                /*   6 Oscillators Control (OSCCTRL) */
253   void* pfnOSC32KCTRL_Handler;                   /*   7 32kHz Oscillators Control (OSC32KCTRL) */
254   void* pfnSUPC_OTHER_Handler;                   /*   8 Supply Controller (SUPC) */
255   void* pfnSUPC_BODDET_Handler;                  /*   9 Supply Controller (SUPC) */
256   void* pfnWDT_Handler;                          /*  10 Watchdog Timer (WDT) */
257   void* pfnRTC_Handler;                          /*  11 Real-Time Counter (RTC) */
258   void* pfnEIC_EXTINT_0_Handler;                 /*  12 External Interrupt Controller (EIC) */
259   void* pfnEIC_EXTINT_1_Handler;                 /*  13 External Interrupt Controller (EIC) */
260   void* pfnEIC_EXTINT_2_Handler;                 /*  14 External Interrupt Controller (EIC) */
261   void* pfnEIC_EXTINT_3_Handler;                 /*  15 External Interrupt Controller (EIC) */
262   void* pfnEIC_EXTINT_4_Handler;                 /*  16 External Interrupt Controller (EIC) */
263   void* pfnEIC_EXTINT_5_Handler;                 /*  17 External Interrupt Controller (EIC) */
264   void* pfnEIC_EXTINT_6_Handler;                 /*  18 External Interrupt Controller (EIC) */
265   void* pfnEIC_EXTINT_7_Handler;                 /*  19 External Interrupt Controller (EIC) */
266   void* pfnEIC_EXTINT_8_Handler;                 /*  20 External Interrupt Controller (EIC) */
267   void* pfnEIC_EXTINT_9_Handler;                 /*  21 External Interrupt Controller (EIC) */
268   void* pfnEIC_EXTINT_10_Handler;                /*  22 External Interrupt Controller (EIC) */
269   void* pfnEIC_EXTINT_11_Handler;                /*  23 External Interrupt Controller (EIC) */
270   void* pfnEIC_EXTINT_12_Handler;                /*  24 External Interrupt Controller (EIC) */
271   void* pfnEIC_EXTINT_13_Handler;                /*  25 External Interrupt Controller (EIC) */
272   void* pfnEIC_EXTINT_14_Handler;                /*  26 External Interrupt Controller (EIC) */
273   void* pfnEIC_EXTINT_15_Handler;                /*  27 External Interrupt Controller (EIC) */
274   void* pfnFREQM_Handler;                        /*  28 Frequency Meter (FREQM) */
275   void* pfnNVMCTRL_0_Handler;                    /*  29 Non-Volatile Memory Controller (NVMCTRL) */
276   void* pfnNVMCTRL_1_Handler;                    /*  30 Non-Volatile Memory Controller (NVMCTRL) */
277   void* pfnDMAC_0_Handler;                       /*  31 Direct Memory Access Controller (DMAC) */
278   void* pfnDMAC_1_Handler;                       /*  32 Direct Memory Access Controller (DMAC) */
279   void* pfnDMAC_2_Handler;                       /*  33 Direct Memory Access Controller (DMAC) */
280   void* pfnDMAC_3_Handler;                       /*  34 Direct Memory Access Controller (DMAC) */
281   void* pfnDMAC_OTHER_Handler;                   /*  35 Direct Memory Access Controller (DMAC) */
282   void* pfnEVSYS_0_Handler;                      /*  36 Event System Interface (EVSYS) */
283   void* pfnEVSYS_1_Handler;                      /*  37 Event System Interface (EVSYS) */
284   void* pfnEVSYS_2_Handler;                      /*  38 Event System Interface (EVSYS) */
285   void* pfnEVSYS_3_Handler;                      /*  39 Event System Interface (EVSYS) */
286   void* pfnEVSYS_OTHER_Handler;                  /*  40 Event System Interface (EVSYS) */
287   void* pfnPAC_Handler;                          /*  41 Peripheral Access Controller (PAC) */
288   void* pvReserved42;
289   void* pvReserved43;
290   void* pvReserved44;
291   void* pfnRAMECC_Handler;                       /*  45 RAM ECC (RAMECC) */
292   void* pfnSERCOM0_0_Handler;                    /*  46 Serial Communication Interface (SERCOM0) */
293   void* pfnSERCOM0_1_Handler;                    /*  47 Serial Communication Interface (SERCOM0) */
294   void* pfnSERCOM0_2_Handler;                    /*  48 Serial Communication Interface (SERCOM0) */
295   void* pfnSERCOM0_OTHER_Handler;                /*  49 Serial Communication Interface (SERCOM0) */
296   void* pfnSERCOM1_0_Handler;                    /*  50 Serial Communication Interface (SERCOM1) */
297   void* pfnSERCOM1_1_Handler;                    /*  51 Serial Communication Interface (SERCOM1) */
298   void* pfnSERCOM1_2_Handler;                    /*  52 Serial Communication Interface (SERCOM1) */
299   void* pfnSERCOM1_OTHER_Handler;                /*  53 Serial Communication Interface (SERCOM1) */
300   void* pfnSERCOM2_0_Handler;                    /*  54 Serial Communication Interface (SERCOM2) */
301   void* pfnSERCOM2_1_Handler;                    /*  55 Serial Communication Interface (SERCOM2) */
302   void* pfnSERCOM2_2_Handler;                    /*  56 Serial Communication Interface (SERCOM2) */
303   void* pfnSERCOM2_OTHER_Handler;                /*  57 Serial Communication Interface (SERCOM2) */
304   void* pfnSERCOM3_0_Handler;                    /*  58 Serial Communication Interface (SERCOM3) */
305   void* pfnSERCOM3_1_Handler;                    /*  59 Serial Communication Interface (SERCOM3) */
306   void* pfnSERCOM3_2_Handler;                    /*  60 Serial Communication Interface (SERCOM3) */
307   void* pfnSERCOM3_OTHER_Handler;                /*  61 Serial Communication Interface (SERCOM3) */
308   void* pfnSERCOM4_0_Handler;                    /*  62 Serial Communication Interface (SERCOM4) */
309   void* pfnSERCOM4_1_Handler;                    /*  63 Serial Communication Interface (SERCOM4) */
310   void* pfnSERCOM4_2_Handler;                    /*  64 Serial Communication Interface (SERCOM4) */
311   void* pfnSERCOM4_OTHER_Handler;                /*  65 Serial Communication Interface (SERCOM4) */
312   void* pfnSERCOM5_0_Handler;                    /*  66 Serial Communication Interface (SERCOM5) */
313   void* pfnSERCOM5_1_Handler;                    /*  67 Serial Communication Interface (SERCOM5) */
314   void* pfnSERCOM5_2_Handler;                    /*  68 Serial Communication Interface (SERCOM5) */
315   void* pfnSERCOM5_OTHER_Handler;                /*  69 Serial Communication Interface (SERCOM5) */
316   void* pfnSERCOM6_0_Handler;                    /*  70 Serial Communication Interface (SERCOM6) */
317   void* pfnSERCOM6_1_Handler;                    /*  71 Serial Communication Interface (SERCOM6) */
318   void* pfnSERCOM6_2_Handler;                    /*  72 Serial Communication Interface (SERCOM6) */
319   void* pfnSERCOM6_OTHER_Handler;                /*  73 Serial Communication Interface (SERCOM6) */
320   void* pfnSERCOM7_0_Handler;                    /*  74 Serial Communication Interface (SERCOM7) */
321   void* pfnSERCOM7_1_Handler;                    /*  75 Serial Communication Interface (SERCOM7) */
322   void* pfnSERCOM7_2_Handler;                    /*  76 Serial Communication Interface (SERCOM7) */
323   void* pfnSERCOM7_OTHER_Handler;                /*  77 Serial Communication Interface (SERCOM7) */
324   void* pfnCAN0_Handler;                         /*  78 Control Area Network (CAN0) */
325   void* pfnCAN1_Handler;                         /*  79 Control Area Network (CAN1) */
326   void* pfnUSB_OTHER_Handler;                    /*  80 Universal Serial Bus (USB) */
327   void* pfnUSB_SOF_HSOF_Handler;                 /*  81 Universal Serial Bus (USB) */
328   void* pfnUSB_TRCPT0_Handler;                   /*  82 Universal Serial Bus (USB) */
329   void* pfnUSB_TRCPT1_Handler;                   /*  83 Universal Serial Bus (USB) */
330   void* pfnGMAC_Handler;                         /*  84 Ethernet MAC (GMAC) */
331   void* pfnTCC0_OTHER_Handler;                   /*  85 Timer Counter Control (TCC0) */
332   void* pfnTCC0_MC0_Handler;                     /*  86 Timer Counter Control (TCC0) */
333   void* pfnTCC0_MC1_Handler;                     /*  87 Timer Counter Control (TCC0) */
334   void* pfnTCC0_MC2_Handler;                     /*  88 Timer Counter Control (TCC0) */
335   void* pfnTCC0_MC3_Handler;                     /*  89 Timer Counter Control (TCC0) */
336   void* pfnTCC0_MC4_Handler;                     /*  90 Timer Counter Control (TCC0) */
337   void* pfnTCC0_MC5_Handler;                     /*  91 Timer Counter Control (TCC0) */
338   void* pfnTCC1_OTHER_Handler;                   /*  92 Timer Counter Control (TCC1) */
339   void* pfnTCC1_MC0_Handler;                     /*  93 Timer Counter Control (TCC1) */
340   void* pfnTCC1_MC1_Handler;                     /*  94 Timer Counter Control (TCC1) */
341   void* pfnTCC1_MC2_Handler;                     /*  95 Timer Counter Control (TCC1) */
342   void* pfnTCC1_MC3_Handler;                     /*  96 Timer Counter Control (TCC1) */
343   void* pfnTCC2_OTHER_Handler;                   /*  97 Timer Counter Control (TCC2) */
344   void* pfnTCC2_MC0_Handler;                     /*  98 Timer Counter Control (TCC2) */
345   void* pfnTCC2_MC1_Handler;                     /*  99 Timer Counter Control (TCC2) */
346   void* pfnTCC2_MC2_Handler;                     /* 100 Timer Counter Control (TCC2) */
347   void* pfnTCC3_OTHER_Handler;                   /* 101 Timer Counter Control (TCC3) */
348   void* pfnTCC3_MC0_Handler;                     /* 102 Timer Counter Control (TCC3) */
349   void* pfnTCC3_MC1_Handler;                     /* 103 Timer Counter Control (TCC3) */
350   void* pfnTCC4_OTHER_Handler;                   /* 104 Timer Counter Control (TCC4) */
351   void* pfnTCC4_MC0_Handler;                     /* 105 Timer Counter Control (TCC4) */
352   void* pfnTCC4_MC1_Handler;                     /* 106 Timer Counter Control (TCC4) */
353   void* pfnTC0_Handler;                          /* 107 Basic Timer Counter (TC0) */
354   void* pfnTC1_Handler;                          /* 108 Basic Timer Counter (TC1) */
355   void* pfnTC2_Handler;                          /* 109 Basic Timer Counter (TC2) */
356   void* pfnTC3_Handler;                          /* 110 Basic Timer Counter (TC3) */
357   void* pfnTC4_Handler;                          /* 111 Basic Timer Counter (TC4) */
358   void* pfnTC5_Handler;                          /* 112 Basic Timer Counter (TC5) */
359   void* pfnTC6_Handler;                          /* 113 Basic Timer Counter (TC6) */
360   void* pfnTC7_Handler;                          /* 114 Basic Timer Counter (TC7) */
361   void* pfnPDEC_OTHER_Handler;                   /* 115 Quadrature Decodeur (PDEC) */
362   void* pfnPDEC_MC0_Handler;                     /* 116 Quadrature Decodeur (PDEC) */
363   void* pfnPDEC_MC1_Handler;                     /* 117 Quadrature Decodeur (PDEC) */
364   void* pfnADC0_OTHER_Handler;                   /* 118 Analog Digital Converter (ADC0) */
365   void* pfnADC0_RESRDY_Handler;                  /* 119 Analog Digital Converter (ADC0) */
366   void* pfnADC1_OTHER_Handler;                   /* 120 Analog Digital Converter (ADC1) */
367   void* pfnADC1_RESRDY_Handler;                  /* 121 Analog Digital Converter (ADC1) */
368   void* pfnAC_Handler;                           /* 122 Analog Comparators (AC) */
369   void* pfnDAC_OTHER_Handler;                    /* 123 Digital-to-Analog Converter (DAC) */
370   void* pfnDAC_EMPTY_0_Handler;                  /* 124 Digital-to-Analog Converter (DAC) */
371   void* pfnDAC_EMPTY_1_Handler;                  /* 125 Digital-to-Analog Converter (DAC) */
372   void* pvReserved126;
373   void* pvReserved127;
374   void* pfnI2S_Handler;                          /* 128 Inter-IC Sound Interface (I2S) */
375   void* pfnPCC_Handler;                          /* 129 Parallel Capture Controller (PCC) */
376   void* pfnAES_Handler;                          /* 130 Advanced Encryption Standard (AES) */
377   void* pfnTRNG_Handler;                         /* 131 True Random Generator (TRNG) */
378   void* pfnICM_Handler;                          /* 132 Integrity Check Monitor (ICM) */
379   void* pfnPUKCC_Handler;                        /* 133 PUblic-Key Cryptography Controller (PUKCC) */
380   void* pfnQSPI_Handler;                         /* 134 Quad SPI interface (QSPI) */
381   void* pfnSDHC0_Handler;                        /* 135 SD/MMC Host Controller (SDHC0) */
382   void* pfnSDHC1_Handler;                        /* 136 SD/MMC Host Controller (SDHC1) */
383 } DeviceVectors;
384 
385 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
386 
387 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
388 #if !defined DONT_USE_PREDEFINED_CORE_HANDLERS
389 /* CORTEX-M4 exception handlers */
390 void Reset_Handler                 ( void );
391 void NonMaskableInt_Handler        ( void );
392 void HardFault_Handler             ( void );
393 void MemoryManagement_Handler      ( void );
394 void BusFault_Handler              ( void );
395 void UsageFault_Handler            ( void );
396 void SVCall_Handler                ( void );
397 void DebugMonitor_Handler          ( void );
398 void PendSV_Handler                ( void );
399 void SysTick_Handler               ( void );
400 #endif /* DONT_USE_PREDEFINED_CORE_HANDLERS */
401 
402 #if !defined DONT_USE_PREDEFINED_PERIPHERALS_HANDLERS
403 /* Peripherals interrupt handlers */
404 void PM_Handler                    ( void );
405 void MCLK_Handler                  ( void );
406 void OSCCTRL_XOSC0_Handler         ( void );
407 void OSCCTRL_XOSC1_Handler         ( void );
408 void OSCCTRL_DFLL_Handler          ( void );
409 void OSCCTRL_DPLL0_Handler         ( void );
410 void OSCCTRL_DPLL1_Handler         ( void );
411 void OSC32KCTRL_Handler            ( void );
412 void SUPC_OTHER_Handler            ( void );
413 void SUPC_BODDET_Handler           ( void );
414 void WDT_Handler                   ( void );
415 void RTC_Handler                   ( void );
416 void EIC_EXTINT_0_Handler          ( void );
417 void EIC_EXTINT_1_Handler          ( void );
418 void EIC_EXTINT_2_Handler          ( void );
419 void EIC_EXTINT_3_Handler          ( void );
420 void EIC_EXTINT_4_Handler          ( void );
421 void EIC_EXTINT_5_Handler          ( void );
422 void EIC_EXTINT_6_Handler          ( void );
423 void EIC_EXTINT_7_Handler          ( void );
424 void EIC_EXTINT_8_Handler          ( void );
425 void EIC_EXTINT_9_Handler          ( void );
426 void EIC_EXTINT_10_Handler         ( void );
427 void EIC_EXTINT_11_Handler         ( void );
428 void EIC_EXTINT_12_Handler         ( void );
429 void EIC_EXTINT_13_Handler         ( void );
430 void EIC_EXTINT_14_Handler         ( void );
431 void EIC_EXTINT_15_Handler         ( void );
432 void FREQM_Handler                 ( void );
433 void NVMCTRL_0_Handler             ( void );
434 void NVMCTRL_1_Handler             ( void );
435 void DMAC_0_Handler                ( void );
436 void DMAC_1_Handler                ( void );
437 void DMAC_2_Handler                ( void );
438 void DMAC_3_Handler                ( void );
439 void DMAC_OTHER_Handler            ( void );
440 void EVSYS_0_Handler               ( void );
441 void EVSYS_1_Handler               ( void );
442 void EVSYS_2_Handler               ( void );
443 void EVSYS_3_Handler               ( void );
444 void EVSYS_OTHER_Handler           ( void );
445 void PAC_Handler                   ( void );
446 void RAMECC_Handler                ( void );
447 void SERCOM0_0_Handler             ( void );
448 void SERCOM0_1_Handler             ( void );
449 void SERCOM0_2_Handler             ( void );
450 void SERCOM0_OTHER_Handler         ( void );
451 void SERCOM1_0_Handler             ( void );
452 void SERCOM1_1_Handler             ( void );
453 void SERCOM1_2_Handler             ( void );
454 void SERCOM1_OTHER_Handler         ( void );
455 void SERCOM2_0_Handler             ( void );
456 void SERCOM2_1_Handler             ( void );
457 void SERCOM2_2_Handler             ( void );
458 void SERCOM2_OTHER_Handler         ( void );
459 void SERCOM3_0_Handler             ( void );
460 void SERCOM3_1_Handler             ( void );
461 void SERCOM3_2_Handler             ( void );
462 void SERCOM3_OTHER_Handler         ( void );
463 void SERCOM4_0_Handler             ( void );
464 void SERCOM4_1_Handler             ( void );
465 void SERCOM4_2_Handler             ( void );
466 void SERCOM4_OTHER_Handler         ( void );
467 void SERCOM5_0_Handler             ( void );
468 void SERCOM5_1_Handler             ( void );
469 void SERCOM5_2_Handler             ( void );
470 void SERCOM5_OTHER_Handler         ( void );
471 void SERCOM6_0_Handler             ( void );
472 void SERCOM6_1_Handler             ( void );
473 void SERCOM6_2_Handler             ( void );
474 void SERCOM6_OTHER_Handler         ( void );
475 void SERCOM7_0_Handler             ( void );
476 void SERCOM7_1_Handler             ( void );
477 void SERCOM7_2_Handler             ( void );
478 void SERCOM7_OTHER_Handler         ( void );
479 void CAN0_Handler                  ( void );
480 void CAN1_Handler                  ( void );
481 void USB_OTHER_Handler             ( void );
482 void USB_SOF_HSOF_Handler          ( void );
483 void USB_TRCPT0_Handler            ( void );
484 void USB_TRCPT1_Handler            ( void );
485 void GMAC_Handler                  ( void );
486 void TCC0_OTHER_Handler            ( void );
487 void TCC0_MC0_Handler              ( void );
488 void TCC0_MC1_Handler              ( void );
489 void TCC0_MC2_Handler              ( void );
490 void TCC0_MC3_Handler              ( void );
491 void TCC0_MC4_Handler              ( void );
492 void TCC0_MC5_Handler              ( void );
493 void TCC1_OTHER_Handler            ( void );
494 void TCC1_MC0_Handler              ( void );
495 void TCC1_MC1_Handler              ( void );
496 void TCC1_MC2_Handler              ( void );
497 void TCC1_MC3_Handler              ( void );
498 void TCC2_OTHER_Handler            ( void );
499 void TCC2_MC0_Handler              ( void );
500 void TCC2_MC1_Handler              ( void );
501 void TCC2_MC2_Handler              ( void );
502 void TCC3_OTHER_Handler            ( void );
503 void TCC3_MC0_Handler              ( void );
504 void TCC3_MC1_Handler              ( void );
505 void TCC4_OTHER_Handler            ( void );
506 void TCC4_MC0_Handler              ( void );
507 void TCC4_MC1_Handler              ( void );
508 void TC0_Handler                   ( void );
509 void TC1_Handler                   ( void );
510 void TC2_Handler                   ( void );
511 void TC3_Handler                   ( void );
512 void TC4_Handler                   ( void );
513 void TC5_Handler                   ( void );
514 void TC6_Handler                   ( void );
515 void TC7_Handler                   ( void );
516 void PDEC_OTHER_Handler            ( void );
517 void PDEC_MC0_Handler              ( void );
518 void PDEC_MC1_Handler              ( void );
519 void ADC0_OTHER_Handler            ( void );
520 void ADC0_RESRDY_Handler           ( void );
521 void ADC1_OTHER_Handler            ( void );
522 void ADC1_RESRDY_Handler           ( void );
523 void AC_Handler                    ( void );
524 void DAC_OTHER_Handler             ( void );
525 void DAC_EMPTY_0_Handler           ( void );
526 void DAC_EMPTY_1_Handler           ( void );
527 void I2S_Handler                   ( void );
528 void PCC_Handler                   ( void );
529 void AES_Handler                   ( void );
530 void TRNG_Handler                  ( void );
531 void ICM_Handler                   ( void );
532 void PUKCC_Handler                 ( void );
533 void QSPI_Handler                  ( void );
534 void SDHC0_Handler                 ( void );
535 void SDHC1_Handler                 ( void );
536 #endif /* DONT_USE_PREDEFINED_PERIPHERALS_HANDLERS */
537 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
538 
539 /* Configuration of the CORTEX-M4 Processor and Core Peripherals */
540 #define __CM4_REV                     0x0001 /* Cortex-M4 Core Revision                                                   */
541 #define __DEBUG_LVL                        3 /* Debug Level                                                               */
542 #define __FPU_PRESENT                      1 /* FPU present or not                                                        */
543 #define __MPU_PRESENT                      1 /* MPU present or not                                                        */
544 #define __NVIC_PRIO_BITS                   3 /* Number of Bits used for Priority Levels                                   */
545 #define __TRACE_LVL                        2 /* Trace Level                                                               */
546 #define __VTOR_PRESENT                     1 /* Vector Table Offset Register present or not                               */
547 #define __Vendor_SysTickConfig             0 /* Set to 1 if different SysTick Config is used                              */
548 #define __ARCH_ARM                         1
549 #define __ARCH_ARM_CORTEX_M                1
550 
551 /* CMSIS includes */
552 #include "core_cm4.h"
553 #if defined USE_CMSIS_INIT
554 #include "system_pic32cxsg61.h"
555 #endif /* USE_CMSIS_INIT */
556 
557 /* ************************************************************************** */
558 /*   SOFTWARE PERIPHERAL API DEFINITION FOR PIC32CX1025SG61128                */
559 /* ************************************************************************** */
560 #include "component/ac.h"
561 #include "component/adc.h"
562 #include "component/aes.h"
563 #include "component/can.h"
564 #include "component/ccl.h"
565 #include "component/cmcc.h"
566 #include "component/dac.h"
567 #include "component/dmac.h"
568 #include "component/dsu.h"
569 #include "component/eic.h"
570 #include "component/evsys.h"
571 #include "component/freqm.h"
572 #include "component/fuses.h"
573 #include "component/gclk.h"
574 #include "component/gmac.h"
575 #include "component/hmatrixb.h"
576 #include "component/i2s.h"
577 #include "component/icm.h"
578 #include "component/mclk.h"
579 #include "component/nvmctrl.h"
580 #include "component/osc32kctrl.h"
581 #include "component/oscctrl.h"
582 #include "component/pac.h"
583 #include "component/pcc.h"
584 #include "component/pdec.h"
585 #include "component/pm.h"
586 #include "component/port.h"
587 #include "component/pukcc.h"
588 #include "component/qspi.h"
589 #include "component/ramecc.h"
590 #include "component/rstc.h"
591 #include "component/rtc.h"
592 #include "component/sdhc.h"
593 #include "component/sercom.h"
594 #include "component/supc.h"
595 #include "component/tc.h"
596 #include "component/tcc.h"
597 #include "component/trng.h"
598 #include "component/usb.h"
599 #include "component/wdt.h"
600 
601 /* ************************************************************************** */
602 /*   INSTANCE DEFINITIONS FOR PIC32CX1025SG61128 */
603 /* ************************************************************************** */
604 #include "instance/ac.h"
605 #include "instance/adc0.h"
606 #include "instance/adc1.h"
607 #include "instance/aes.h"
608 #include "instance/can0.h"
609 #include "instance/can1.h"
610 #include "instance/ccl.h"
611 #include "instance/cmcc.h"
612 #include "instance/dac.h"
613 #include "instance/dmac.h"
614 #include "instance/dsu.h"
615 #include "instance/eic.h"
616 #include "instance/evsys.h"
617 #include "instance/freqm.h"
618 #include "instance/fuses.h"
619 #include "instance/gclk.h"
620 #include "instance/gmac.h"
621 #include "instance/hmatrix.h"
622 #include "instance/i2s.h"
623 #include "instance/icm.h"
624 #include "instance/mclk.h"
625 #include "instance/nvmctrl.h"
626 #include "instance/osc32kctrl.h"
627 #include "instance/oscctrl.h"
628 #include "instance/pac.h"
629 #include "instance/pcc.h"
630 #include "instance/pdec.h"
631 #include "instance/pm.h"
632 #include "instance/port.h"
633 #include "instance/qspi.h"
634 #include "instance/ramecc.h"
635 #include "instance/rstc.h"
636 #include "instance/rtc.h"
637 #include "instance/sdhc0.h"
638 #include "instance/sdhc1.h"
639 #include "instance/sercom0.h"
640 #include "instance/sercom1.h"
641 #include "instance/sercom2.h"
642 #include "instance/sercom3.h"
643 #include "instance/sercom4.h"
644 #include "instance/sercom5.h"
645 #include "instance/sercom6.h"
646 #include "instance/sercom7.h"
647 #include "instance/supc.h"
648 #include "instance/tc0.h"
649 #include "instance/tc1.h"
650 #include "instance/tc2.h"
651 #include "instance/tc3.h"
652 #include "instance/tc4.h"
653 #include "instance/tc5.h"
654 #include "instance/tc6.h"
655 #include "instance/tc7.h"
656 #include "instance/tcc0.h"
657 #include "instance/tcc1.h"
658 #include "instance/tcc2.h"
659 #include "instance/tcc3.h"
660 #include "instance/tcc4.h"
661 #include "instance/trng.h"
662 #include "instance/usb.h"
663 #include "instance/wdt.h"
664 
665 /* ************************************************************************** */
666 /*  PERIPHERAL ID DEFINITIONS FOR PIC32CX1025SG61128                          */
667 /* ************************************************************************** */
668 #define ID_PAC           (  0) /* Instance index for PAC (PAC) */
669 #define ID_PM            (  1) /* Instance index for PM (PM) */
670 #define ID_MCLK          (  2) /* Instance index for MCLK (MCLK) */
671 #define ID_RSTC          (  3) /* Instance index for RSTC (RSTC) */
672 #define ID_OSCCTRL       (  4) /* Instance index for OSCCTRL (OSCCTRL) */
673 #define ID_OSC32KCTRL    (  5) /* Instance index for OSC32KCTRL (OSC32KCTRL) */
674 #define ID_SUPC          (  6) /* Instance index for SUPC (SUPC) */
675 #define ID_GCLK          (  7) /* Instance index for GCLK (GCLK) */
676 #define ID_WDT           (  8) /* Instance index for WDT (WDT) */
677 #define ID_RTC           (  9) /* Instance index for RTC (RTC) */
678 #define ID_EIC           ( 10) /* Instance index for EIC (EIC) */
679 #define ID_FREQM         ( 11) /* Instance index for FREQM (FREQM) */
680 #define ID_SERCOM0       ( 12) /* Instance index for SERCOM0 (SERCOM0) */
681 #define ID_SERCOM1       ( 13) /* Instance index for SERCOM1 (SERCOM1) */
682 #define ID_TC0           ( 14) /* Instance index for TC0 (TC0) */
683 #define ID_TC1           ( 15) /* Instance index for TC1 (TC1) */
684 #define ID_USB           ( 32) /* Instance index for USB (USB) */
685 #define ID_DSU           ( 33) /* Instance index for DSU (DSU) */
686 #define ID_NVMCTRL       ( 34) /* Instance index for NVMCTRL (NVMCTRL) */
687 #define ID_CMCC          ( 35) /* Instance index for CMCC (CMCC) */
688 #define ID_PORT          ( 36) /* Instance index for PORT (PORT) */
689 #define ID_DMAC          ( 37) /* Instance index for DMAC (DMAC) */
690 #define ID_HMATRIX       ( 38) /* Instance index for HMATRIX (HMATRIX) */
691 #define ID_EVSYS         ( 39) /* Instance index for EVSYS (EVSYS) */
692 #define ID_SERCOM2       ( 41) /* Instance index for SERCOM2 (SERCOM2) */
693 #define ID_SERCOM3       ( 42) /* Instance index for SERCOM3 (SERCOM3) */
694 #define ID_TCC0          ( 43) /* Instance index for TCC0 (TCC0) */
695 #define ID_TCC1          ( 44) /* Instance index for TCC1 (TCC1) */
696 #define ID_TC2           ( 45) /* Instance index for TC2 (TC2) */
697 #define ID_TC3           ( 46) /* Instance index for TC3 (TC3) */
698 #define ID_RAMECC        ( 48) /* Instance index for RAMECC (RAMECC) */
699 #define ID_CAN0          ( 64) /* Instance index for CAN0 (CAN0) */
700 #define ID_CAN1          ( 65) /* Instance index for CAN1 (CAN1) */
701 #define ID_GMAC          ( 66) /* Instance index for GMAC (GMAC) */
702 #define ID_TCC2          ( 67) /* Instance index for TCC2 (TCC2) */
703 #define ID_TCC3          ( 68) /* Instance index for TCC3 (TCC3) */
704 #define ID_TC4           ( 69) /* Instance index for TC4 (TC4) */
705 #define ID_TC5           ( 70) /* Instance index for TC5 (TC5) */
706 #define ID_PDEC          ( 71) /* Instance index for PDEC (PDEC) */
707 #define ID_AC            ( 72) /* Instance index for AC (AC) */
708 #define ID_AES           ( 73) /* Instance index for AES (AES) */
709 #define ID_TRNG          ( 74) /* Instance index for TRNG (TRNG) */
710 #define ID_ICM           ( 75) /* Integrity Check Monitor (ICM) */
711 #define ID_PUKCC         ( 76) /* Instance index for PUKCC (PUKCC) */
712 #define ID_QSPI          ( 77) /* Instance index for QSPI (QSPI) */
713 #define ID_CCL           ( 78) /* Instance index for CCL (CCL) */
714 #define ID_SERCOM4       ( 96) /* Instance index for SERCOM4 (SERCOM4) */
715 #define ID_SERCOM5       ( 97) /* Instance index for SERCOM5 (SERCOM5) */
716 #define ID_SERCOM6       ( 98) /* Instance index for SERCOM6 (SERCOM6) */
717 #define ID_SERCOM7       ( 99) /* Instance index for SERCOM7 (SERCOM7) */
718 #define ID_TCC4          (100) /* Instance index for TCC4 (TCC4) */
719 #define ID_TC6           (101) /* Instance index for TC6 (TC6) */
720 #define ID_TC7           (102) /* Instance index for TC7 (TC7) */
721 #define ID_ADC0          (103) /* Instance index for ADC0 (ADC0) */
722 #define ID_ADC1          (104) /* Instance index for ADC1 (ADC1) */
723 #define ID_DAC           (105) /* Instance index for DAC (DAC) */
724 #define ID_I2S           (106) /* Instance index for I2S (I2S) */
725 #define ID_PCC           (107) /* Instance index for PCC (PCC) */
726 
727 #define ID_PERIPH_MAX    (107) /* Number of peripheral IDs */
728 
729 /* ************************************************************************** */
730 /*   REGISTER STRUCTURE ADDRESS DEFINITIONS FOR PIC32CX1025SG61128            */
731 /* ************************************************************************** */
732 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
733 #define AC_REGS                          ((ac_registers_t*)0x42002000)                 /* AC Registers Address         */
734 #define ADC0_REGS                        ((adc_registers_t*)0x43001c00)                /* ADC0 Registers Address       */
735 #define ADC1_REGS                        ((adc_registers_t*)0x43002000)                /* ADC1 Registers Address       */
736 #define AES_REGS                         ((aes_registers_t*)0x42002400)                /* AES Registers Address        */
737 #define CAN0_REGS                        ((can_registers_t*)0x42000000)                /* CAN0 Registers Address       */
738 #define CAN1_REGS                        ((can_registers_t*)0x42000400)                /* CAN1 Registers Address       */
739 #define CCL_REGS                         ((ccl_registers_t*)0x42003800)                /* CCL Registers Address        */
740 #define CMCC_REGS                        ((cmcc_registers_t*)0x41006000)               /* CMCC Registers Address       */
741 #define DAC_REGS                         ((dac_registers_t*)0x43002400)                /* DAC Registers Address        */
742 #define DMAC_REGS                        ((dmac_registers_t*)0x4100a000)               /* DMAC Registers Address       */
743 #define DSU_REGS                         ((dsu_registers_t*)0x41002000)                /* DSU Registers Address        */
744 #define EIC_REGS                         ((eic_registers_t*)0x40002800)                /* EIC Registers Address        */
745 #define EVSYS_REGS                       ((evsys_registers_t*)0x4100e000)              /* EVSYS Registers Address      */
746 #define FREQM_REGS                       ((freqm_registers_t*)0x40002c00)              /* FREQM Registers Address      */
747 #define GCLK_REGS                        ((gclk_registers_t*)0x40001c00)               /* GCLK Registers Address       */
748 #define GMAC_REGS                        ((gmac_registers_t*)0x42000800)               /* GMAC Registers Address       */
749 #define HMATRIX_REGS                     ((hmatrixb_registers_t*)0x4100c000)           /* HMATRIX Registers Address    */
750 #define ICM_REGS                         ((icm_registers_t*)0x42002c00)                /* ICM Registers Address        */
751 #define I2S_REGS                         ((i2s_registers_t*)0x43002800)                /* I2S Registers Address        */
752 #define MCLK_REGS                        ((mclk_registers_t*)0x40000800)               /* MCLK Registers Address       */
753 #define NVMCTRL_REGS                     ((nvmctrl_registers_t*)0x41004000)            /* NVMCTRL Registers Address    */
754 #define SW0_FUSES_REGS                   ((fuses_sw0_fuses_registers_t*)0x00800080)    /* FUSES Registers Address      */
755 #define USER_FUSES_REGS                  ((fuses_user_fuses_registers_t*)0x00804000)   /* FUSES Registers Address      */
756 #define OSCCTRL_REGS                     ((oscctrl_registers_t*)0x40001000)            /* OSCCTRL Registers Address    */
757 #define OSC32KCTRL_REGS                  ((osc32kctrl_registers_t*)0x40001400)         /* OSC32KCTRL Registers Address */
758 #define PAC_REGS                         ((pac_registers_t*)0x40000000)                /* PAC Registers Address        */
759 #define PCC_REGS                         ((pcc_registers_t*)0x43002c00)                /* PCC Registers Address        */
760 #define PDEC_REGS                        ((pdec_registers_t*)0x42001c00)               /* PDEC Registers Address       */
761 #define PM_REGS                          ((pm_registers_t*)0x40000400)                 /* PM Registers Address         */
762 #define PORT_REGS                        ((port_registers_t*)0x41008000)               /* PORT Registers Address       */
763 #define QSPI_REGS                        ((qspi_registers_t*)0x42003400)               /* QSPI Registers Address       */
764 #define RAMECC_REGS                      ((ramecc_registers_t*)0x41020000)             /* RAMECC Registers Address     */
765 #define RSTC_REGS                        ((rstc_registers_t*)0x40000c00)               /* RSTC Registers Address       */
766 #define RTC_REGS                         ((rtc_registers_t*)0x40002400)                /* RTC Registers Address        */
767 #define SDHC0_REGS                       ((sdhc_registers_t*)0x45000000)               /* SDHC0 Registers Address      */
768 #define SDHC1_REGS                       ((sdhc_registers_t*)0x46000000)               /* SDHC1 Registers Address      */
769 #define SERCOM0_REGS                     ((sercom_registers_t*)0x40003000)             /* SERCOM0 Registers Address    */
770 #define SERCOM1_REGS                     ((sercom_registers_t*)0x40003400)             /* SERCOM1 Registers Address    */
771 #define SERCOM2_REGS                     ((sercom_registers_t*)0x41012000)             /* SERCOM2 Registers Address    */
772 #define SERCOM3_REGS                     ((sercom_registers_t*)0x41014000)             /* SERCOM3 Registers Address    */
773 #define SERCOM4_REGS                     ((sercom_registers_t*)0x43000000)             /* SERCOM4 Registers Address    */
774 #define SERCOM5_REGS                     ((sercom_registers_t*)0x43000400)             /* SERCOM5 Registers Address    */
775 #define SERCOM6_REGS                     ((sercom_registers_t*)0x43000800)             /* SERCOM6 Registers Address    */
776 #define SERCOM7_REGS                     ((sercom_registers_t*)0x43000c00)             /* SERCOM7 Registers Address    */
777 #define SUPC_REGS                        ((supc_registers_t*)0x40001800)               /* SUPC Registers Address       */
778 #define TC0_REGS                         ((tc_registers_t*)0x40003800)                 /* TC0 Registers Address        */
779 #define TC1_REGS                         ((tc_registers_t*)0x40003c00)                 /* TC1 Registers Address        */
780 #define TC2_REGS                         ((tc_registers_t*)0x4101a000)                 /* TC2 Registers Address        */
781 #define TC3_REGS                         ((tc_registers_t*)0x4101c000)                 /* TC3 Registers Address        */
782 #define TC4_REGS                         ((tc_registers_t*)0x42001400)                 /* TC4 Registers Address        */
783 #define TC5_REGS                         ((tc_registers_t*)0x42001800)                 /* TC5 Registers Address        */
784 #define TC6_REGS                         ((tc_registers_t*)0x43001400)                 /* TC6 Registers Address        */
785 #define TC7_REGS                         ((tc_registers_t*)0x43001800)                 /* TC7 Registers Address        */
786 #define TCC0_REGS                        ((tcc_registers_t*)0x41016000)                /* TCC0 Registers Address       */
787 #define TCC1_REGS                        ((tcc_registers_t*)0x41018000)                /* TCC1 Registers Address       */
788 #define TCC2_REGS                        ((tcc_registers_t*)0x42000c00)                /* TCC2 Registers Address       */
789 #define TCC3_REGS                        ((tcc_registers_t*)0x42001000)                /* TCC3 Registers Address       */
790 #define TCC4_REGS                        ((tcc_registers_t*)0x43001000)                /* TCC4 Registers Address       */
791 #define TRNG_REGS                        ((trng_registers_t*)0x42002800)               /* TRNG Registers Address       */
792 #define USB_REGS                         ((usb_registers_t*)0x41000000)                /* USB Registers Address        */
793 #define WDT_REGS                         ((wdt_registers_t*)0x40002000)                /* WDT Registers Address        */
794 #endif /* (defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
795 
796 /* ************************************************************************** */
797 /*   BASE ADDRESS DEFINITIONS FOR PIC32CX1025SG61128                          */
798 /* ************************************************************************** */
799 #define AC_BASE_ADDRESS                  _UINT32_(0x42002000)                          /* AC Base Address */
800 #define ADC0_BASE_ADDRESS                _UINT32_(0x43001c00)                          /* ADC0 Base Address */
801 #define ADC1_BASE_ADDRESS                _UINT32_(0x43002000)                          /* ADC1 Base Address */
802 #define AES_BASE_ADDRESS                 _UINT32_(0x42002400)                          /* AES Base Address */
803 #define CAN0_BASE_ADDRESS                _UINT32_(0x42000000)                          /* CAN0 Base Address */
804 #define CAN1_BASE_ADDRESS                _UINT32_(0x42000400)                          /* CAN1 Base Address */
805 #define CCL_BASE_ADDRESS                 _UINT32_(0x42003800)                          /* CCL Base Address */
806 #define CMCC_BASE_ADDRESS                _UINT32_(0x41006000)                          /* CMCC Base Address */
807 #define DAC_BASE_ADDRESS                 _UINT32_(0x43002400)                          /* DAC Base Address */
808 #define DMAC_BASE_ADDRESS                _UINT32_(0x4100a000)                          /* DMAC Base Address */
809 #define DSU_BASE_ADDRESS                 _UINT32_(0x41002000)                          /* DSU Base Address */
810 #define EIC_BASE_ADDRESS                 _UINT32_(0x40002800)                          /* EIC Base Address */
811 #define EVSYS_BASE_ADDRESS               _UINT32_(0x4100e000)                          /* EVSYS Base Address */
812 #define FREQM_BASE_ADDRESS               _UINT32_(0x40002c00)                          /* FREQM Base Address */
813 #define GCLK_BASE_ADDRESS                _UINT32_(0x40001c00)                          /* GCLK Base Address */
814 #define GMAC_BASE_ADDRESS                _UINT32_(0x42000800)                          /* GMAC Base Address */
815 #define HMATRIX_BASE_ADDRESS             _UINT32_(0x4100c000)                          /* HMATRIX Base Address */
816 #define ICM_BASE_ADDRESS                 _UINT32_(0x42002c00)                          /* ICM Base Address */
817 #define I2S_BASE_ADDRESS                 _UINT32_(0x43002800)                          /* I2S Base Address */
818 #define MCLK_BASE_ADDRESS                _UINT32_(0x40000800)                          /* MCLK Base Address */
819 #define NVMCTRL_BASE_ADDRESS             _UINT32_(0x41004000)                          /* NVMCTRL Base Address */
820 #define SW0_FUSES_BASE_ADDRESS           _UINT32_(0x00800080)                          /* FUSES Base Address */
821 #define USER_FUSES_BASE_ADDRESS          _UINT32_(0x00804000)                          /* FUSES Base Address */
822 #define OSCCTRL_BASE_ADDRESS             _UINT32_(0x40001000)                          /* OSCCTRL Base Address */
823 #define OSC32KCTRL_BASE_ADDRESS          _UINT32_(0x40001400)                          /* OSC32KCTRL Base Address */
824 #define PAC_BASE_ADDRESS                 _UINT32_(0x40000000)                          /* PAC Base Address */
825 #define PCC_BASE_ADDRESS                 _UINT32_(0x43002c00)                          /* PCC Base Address */
826 #define PDEC_BASE_ADDRESS                _UINT32_(0x42001c00)                          /* PDEC Base Address */
827 #define PM_BASE_ADDRESS                  _UINT32_(0x40000400)                          /* PM Base Address */
828 #define PORT_BASE_ADDRESS                _UINT32_(0x41008000)                          /* PORT Base Address */
829 #define QSPI_BASE_ADDRESS                _UINT32_(0x42003400)                          /* QSPI Base Address */
830 #define RAMECC_BASE_ADDRESS              _UINT32_(0x41020000)                          /* RAMECC Base Address */
831 #define RSTC_BASE_ADDRESS                _UINT32_(0x40000c00)                          /* RSTC Base Address */
832 #define RTC_BASE_ADDRESS                 _UINT32_(0x40002400)                          /* RTC Base Address */
833 #define SDHC0_BASE_ADDRESS               _UINT32_(0x45000000)                          /* SDHC0 Base Address */
834 #define SDHC1_BASE_ADDRESS               _UINT32_(0x46000000)                          /* SDHC1 Base Address */
835 #define SERCOM0_BASE_ADDRESS             _UINT32_(0x40003000)                          /* SERCOM0 Base Address */
836 #define SERCOM1_BASE_ADDRESS             _UINT32_(0x40003400)                          /* SERCOM1 Base Address */
837 #define SERCOM2_BASE_ADDRESS             _UINT32_(0x41012000)                          /* SERCOM2 Base Address */
838 #define SERCOM3_BASE_ADDRESS             _UINT32_(0x41014000)                          /* SERCOM3 Base Address */
839 #define SERCOM4_BASE_ADDRESS             _UINT32_(0x43000000)                          /* SERCOM4 Base Address */
840 #define SERCOM5_BASE_ADDRESS             _UINT32_(0x43000400)                          /* SERCOM5 Base Address */
841 #define SERCOM6_BASE_ADDRESS             _UINT32_(0x43000800)                          /* SERCOM6 Base Address */
842 #define SERCOM7_BASE_ADDRESS             _UINT32_(0x43000c00)                          /* SERCOM7 Base Address */
843 #define SUPC_BASE_ADDRESS                _UINT32_(0x40001800)                          /* SUPC Base Address */
844 #define TC0_BASE_ADDRESS                 _UINT32_(0x40003800)                          /* TC0 Base Address */
845 #define TC1_BASE_ADDRESS                 _UINT32_(0x40003c00)                          /* TC1 Base Address */
846 #define TC2_BASE_ADDRESS                 _UINT32_(0x4101a000)                          /* TC2 Base Address */
847 #define TC3_BASE_ADDRESS                 _UINT32_(0x4101c000)                          /* TC3 Base Address */
848 #define TC4_BASE_ADDRESS                 _UINT32_(0x42001400)                          /* TC4 Base Address */
849 #define TC5_BASE_ADDRESS                 _UINT32_(0x42001800)                          /* TC5 Base Address */
850 #define TC6_BASE_ADDRESS                 _UINT32_(0x43001400)                          /* TC6 Base Address */
851 #define TC7_BASE_ADDRESS                 _UINT32_(0x43001800)                          /* TC7 Base Address */
852 #define TCC0_BASE_ADDRESS                _UINT32_(0x41016000)                          /* TCC0 Base Address */
853 #define TCC1_BASE_ADDRESS                _UINT32_(0x41018000)                          /* TCC1 Base Address */
854 #define TCC2_BASE_ADDRESS                _UINT32_(0x42000c00)                          /* TCC2 Base Address */
855 #define TCC3_BASE_ADDRESS                _UINT32_(0x42001000)                          /* TCC3 Base Address */
856 #define TCC4_BASE_ADDRESS                _UINT32_(0x43001000)                          /* TCC4 Base Address */
857 #define TRNG_BASE_ADDRESS                _UINT32_(0x42002800)                          /* TRNG Base Address */
858 #define USB_BASE_ADDRESS                 _UINT32_(0x41000000)                          /* USB Base Address */
859 #define WDT_BASE_ADDRESS                 _UINT32_(0x40002000)                          /* WDT Base Address */
860 
861 /* ************************************************************************** */
862 /*   PIO DEFINITIONS FOR PIC32CX1025SG61128                                   */
863 /* ************************************************************************** */
864 #include "pio/pic32cx1025sg61128.h"
865 
866 /* ************************************************************************** */
867 /*   MEMORY MAPPING DEFINITIONS FOR PIC32CX1025SG61128                        */
868 /* ************************************************************************** */
869 #define FLASH_SIZE                     _UINT32_(0x00100000)    /* 1024kB Memory segment type: flash */
870 #define FLASH_PAGE_SIZE                _UINT32_(       512)
871 #define FLASH_NB_OF_PAGES              _UINT32_(      2048)
872 
873 #define SW0_SIZE                       _UINT32_(0x00000008)    /*    0kB Memory segment type: fuses */
874 #define USER_PAGE_SIZE                 _UINT32_(0x00000200)    /*    0kB Memory segment type: user_page */
875 #define USER_PAGE_PAGE_SIZE            _UINT32_(       512)
876 #define USER_PAGE_NB_OF_PAGES          _UINT32_(         1)
877 
878 #define CMCC_SIZE                      _UINT32_(0x01000000)    /* 16384kB Memory segment type: io */
879 #define CMCC_DATARAM_SIZE              _UINT32_(0x00001000)    /*    4kB Memory segment type: io */
880 #define CMCC_TAGRAM_SIZE               _UINT32_(0x00000400)    /*    1kB Memory segment type: io */
881 #define CMCC_VALIDRAM_SIZE             _UINT32_(0x00000040)    /*    0kB Memory segment type: io */
882 #define QSPI_SIZE                      _UINT32_(0x01000000)    /* 16384kB Memory segment type: other */
883 #define HSRAM_SIZE                     _UINT32_(0x00040000)    /*  256kB Memory segment type: ram */
884 #define HSRAM_ETB_SIZE                 _UINT32_(0x00008000)    /*   32kB Memory segment type: ram */
885 #define HSRAM_RET1_SIZE                _UINT32_(0x00008000)    /*   32kB Memory segment type: ram */
886 #define HPB0_SIZE                      _UINT32_(0x00004400)    /*   17kB Memory segment type: io */
887 #define HPB1_SIZE                      _UINT32_(0x00022000)    /*  136kB Memory segment type: io */
888 #define HPB2_SIZE                      _UINT32_(0x00003c00)    /*   15kB Memory segment type: io */
889 #define HPB3_SIZE                      _UINT32_(0x00003000)    /*   12kB Memory segment type: io */
890 #define SEEPROM_SIZE                   _UINT32_(0x00020000)    /*  128kB Memory segment type: io */
891 #define SDHC0_SIZE                     _UINT32_(0x00000c00)    /*    3kB Memory segment type: io */
892 #define SDHC1_SIZE                     _UINT32_(0x00000c00)    /*    3kB Memory segment type: io */
893 #define BKUPRAM_SIZE                   _UINT32_(0x00002000)    /*    8kB Memory segment type: ram */
894 #define PPB_SIZE                       _UINT32_(0x00100000)    /* 1024kB Memory segment type: io */
895 #define SCS_SIZE                       _UINT32_(0x00001000)    /*    4kB Memory segment type: io */
896 
897 #define FLASH_ADDR                     _UINT32_(0x00000000)    /* FLASH base address (type: flash)*/
898 #define SW0_ADDR                       _UINT32_(0x00800080)    /* SW0 base address (type: fuses)*/
899 #define USER_PAGE_ADDR                 _UINT32_(0x00804000)    /* USER_PAGE base address (type: user_page)*/
900 #define CMCC_ADDR                      _UINT32_(0x03000000)    /* CMCC base address (type: io)*/
901 #define CMCC_DATARAM_ADDR              _UINT32_(0x03000000)    /* CMCC_DATARAM base address (type: io)*/
902 #define CMCC_TAGRAM_ADDR               _UINT32_(0x03001000)    /* CMCC_TAGRAM base address (type: io)*/
903 #define CMCC_VALIDRAM_ADDR             _UINT32_(0x03002000)    /* CMCC_VALIDRAM base address (type: io)*/
904 #define QSPI_ADDR                      _UINT32_(0x04000000)    /* QSPI base address (type: other)*/
905 #define HSRAM_ADDR                     _UINT32_(0x20000000)    /* HSRAM base address (type: ram)*/
906 #define HSRAM_ETB_ADDR                 _UINT32_(0x20000000)    /* HSRAM_ETB base address (type: ram)*/
907 #define HSRAM_RET1_ADDR                _UINT32_(0x20000000)    /* HSRAM_RET1 base address (type: ram)*/
908 #define HPB0_ADDR                      _UINT32_(0x40000000)    /* HPB0 base address (type: io)*/
909 #define HPB1_ADDR                      _UINT32_(0x41000000)    /* HPB1 base address (type: io)*/
910 #define HPB2_ADDR                      _UINT32_(0x42000000)    /* HPB2 base address (type: io)*/
911 #define HPB3_ADDR                      _UINT32_(0x43000000)    /* HPB3 base address (type: io)*/
912 #define SEEPROM_ADDR                   _UINT32_(0x44000000)    /* SEEPROM base address (type: io)*/
913 #define SDHC0_ADDR                     _UINT32_(0x45000000)    /* SDHC0 base address (type: io)*/
914 #define SDHC1_ADDR                     _UINT32_(0x46000000)    /* SDHC1 base address (type: io)*/
915 #define BKUPRAM_ADDR                   _UINT32_(0x47000000)    /* BKUPRAM base address (type: ram)*/
916 #define PPB_ADDR                       _UINT32_(0xe0000000)    /* PPB base address (type: io)*/
917 #define SCS_ADDR                       _UINT32_(0xe000e000)    /* SCS base address (type: io)*/
918 
919 /* ************************************************************************** */
920 /*   DEVICE SIGNATURES FOR PIC32CX1025SG61128                                 */
921 /* ************************************************************************** */
922 #define CHIP_DSU_DID                   _UINT32_(0X61820500)
923 
924 /* ************************************************************************** */
925 /*   ELECTRICAL DEFINITIONS FOR PIC32CX1025SG61128                            */
926 /* ************************************************************************** */
927 
928 /* ************************************************************************** */
929 /* Event Generator IDs for C32CX1025SG61128 */
930 /* ************************************************************************** */
931 #define EVENT_ID_GEN_OSCCTRL_XOSC_FAIL_0                  1 /* ID for OSCCTRL event generator XOSC_FAIL_0 */
932 #define EVENT_ID_GEN_OSCCTRL_XOSC_FAIL_1                  2 /* ID for OSCCTRL event generator XOSC_FAIL_1 */
933 #define EVENT_ID_GEN_OSC32KCTRL_XOSC32K_FAIL              3 /* ID for OSC32KCTRL event generator XOSC32K_FAIL */
934 #define EVENT_ID_GEN_RTC_PER_0                            4 /* ID for RTC event generator PER_0 */
935 #define EVENT_ID_GEN_RTC_PER_1                            5 /* ID for RTC event generator PER_1 */
936 #define EVENT_ID_GEN_RTC_PER_2                            6 /* ID for RTC event generator PER_2 */
937 #define EVENT_ID_GEN_RTC_PER_3                            7 /* ID for RTC event generator PER_3 */
938 #define EVENT_ID_GEN_RTC_PER_4                            8 /* ID for RTC event generator PER_4 */
939 #define EVENT_ID_GEN_RTC_PER_5                            9 /* ID for RTC event generator PER_5 */
940 #define EVENT_ID_GEN_RTC_PER_6                           10 /* ID for RTC event generator PER_6 */
941 #define EVENT_ID_GEN_RTC_PER_7                           11 /* ID for RTC event generator PER_7 */
942 #define EVENT_ID_GEN_RTC_CMP_0                           12 /* ID for RTC event generator CMP_0 */
943 #define EVENT_ID_GEN_RTC_CMP_1                           13 /* ID for RTC event generator CMP_1 */
944 #define EVENT_ID_GEN_RTC_CMP_2                           14 /* ID for RTC event generator CMP_2 */
945 #define EVENT_ID_GEN_RTC_CMP_3                           15 /* ID for RTC event generator CMP_3 */
946 #define EVENT_ID_GEN_RTC_TAMPER                          16 /* ID for RTC event generator TAMPER */
947 #define EVENT_ID_GEN_RTC_OVF                             17 /* ID for RTC event generator OVF */
948 #define EVENT_ID_GEN_EIC_EXTINT_0                        18 /* ID for EIC event generator EXTINT_0 */
949 #define EVENT_ID_GEN_EIC_EXTINT_1                        19 /* ID for EIC event generator EXTINT_1 */
950 #define EVENT_ID_GEN_EIC_EXTINT_2                        20 /* ID for EIC event generator EXTINT_2 */
951 #define EVENT_ID_GEN_EIC_EXTINT_3                        21 /* ID for EIC event generator EXTINT_3 */
952 #define EVENT_ID_GEN_EIC_EXTINT_4                        22 /* ID for EIC event generator EXTINT_4 */
953 #define EVENT_ID_GEN_EIC_EXTINT_5                        23 /* ID for EIC event generator EXTINT_5 */
954 #define EVENT_ID_GEN_EIC_EXTINT_6                        24 /* ID for EIC event generator EXTINT_6 */
955 #define EVENT_ID_GEN_EIC_EXTINT_7                        25 /* ID for EIC event generator EXTINT_7 */
956 #define EVENT_ID_GEN_EIC_EXTINT_8                        26 /* ID for EIC event generator EXTINT_8 */
957 #define EVENT_ID_GEN_EIC_EXTINT_9                        27 /* ID for EIC event generator EXTINT_9 */
958 #define EVENT_ID_GEN_EIC_EXTINT_10                       28 /* ID for EIC event generator EXTINT_10 */
959 #define EVENT_ID_GEN_EIC_EXTINT_11                       29 /* ID for EIC event generator EXTINT_11 */
960 #define EVENT_ID_GEN_EIC_EXTINT_12                       30 /* ID for EIC event generator EXTINT_12 */
961 #define EVENT_ID_GEN_EIC_EXTINT_13                       31 /* ID for EIC event generator EXTINT_13 */
962 #define EVENT_ID_GEN_EIC_EXTINT_14                       32 /* ID for EIC event generator EXTINT_14 */
963 #define EVENT_ID_GEN_EIC_EXTINT_15                       33 /* ID for EIC event generator EXTINT_15 */
964 #define EVENT_ID_GEN_DMAC_CH_0                           34 /* ID for DMAC event generator CH_0 */
965 #define EVENT_ID_GEN_DMAC_CH_1                           35 /* ID for DMAC event generator CH_1 */
966 #define EVENT_ID_GEN_DMAC_CH_2                           36 /* ID for DMAC event generator CH_2 */
967 #define EVENT_ID_GEN_DMAC_CH_3                           37 /* ID for DMAC event generator CH_3 */
968 #define EVENT_ID_GEN_PAC_ACCERR                          38 /* ID for PAC event generator ACCERR */
969 #define EVENT_ID_GEN_TCC0_OVF                            41 /* ID for TCC0 event generator OVF */
970 #define EVENT_ID_GEN_TCC0_TRG                            42 /* ID for TCC0 event generator TRG */
971 #define EVENT_ID_GEN_TCC0_CNT                            43 /* ID for TCC0 event generator CNT */
972 #define EVENT_ID_GEN_TCC0_MC_0                           44 /* ID for TCC0 event generator MC_0 */
973 #define EVENT_ID_GEN_TCC0_MC_1                           45 /* ID for TCC0 event generator MC_1 */
974 #define EVENT_ID_GEN_TCC0_MC_2                           46 /* ID for TCC0 event generator MC_2 */
975 #define EVENT_ID_GEN_TCC0_MC_3                           47 /* ID for TCC0 event generator MC_3 */
976 #define EVENT_ID_GEN_TCC0_MC_4                           48 /* ID for TCC0 event generator MC_4 */
977 #define EVENT_ID_GEN_TCC0_MC_5                           49 /* ID for TCC0 event generator MC_5 */
978 #define EVENT_ID_GEN_TCC1_OVF                            50 /* ID for TCC1 event generator OVF */
979 #define EVENT_ID_GEN_TCC1_TRG                            51 /* ID for TCC1 event generator TRG */
980 #define EVENT_ID_GEN_TCC1_CNT                            52 /* ID for TCC1 event generator CNT */
981 #define EVENT_ID_GEN_TCC1_MC_0                           53 /* ID for TCC1 event generator MC_0 */
982 #define EVENT_ID_GEN_TCC1_MC_1                           54 /* ID for TCC1 event generator MC_1 */
983 #define EVENT_ID_GEN_TCC1_MC_2                           55 /* ID for TCC1 event generator MC_2 */
984 #define EVENT_ID_GEN_TCC1_MC_3                           56 /* ID for TCC1 event generator MC_3 */
985 #define EVENT_ID_GEN_TCC2_OVF                            57 /* ID for TCC2 event generator OVF */
986 #define EVENT_ID_GEN_TCC2_TRG                            58 /* ID for TCC2 event generator TRG */
987 #define EVENT_ID_GEN_TCC2_CNT                            59 /* ID for TCC2 event generator CNT */
988 #define EVENT_ID_GEN_TCC2_MC_0                           60 /* ID for TCC2 event generator MC_0 */
989 #define EVENT_ID_GEN_TCC2_MC_1                           61 /* ID for TCC2 event generator MC_1 */
990 #define EVENT_ID_GEN_TCC2_MC_2                           62 /* ID for TCC2 event generator MC_2 */
991 #define EVENT_ID_GEN_TCC3_OVF                            63 /* ID for TCC3 event generator OVF */
992 #define EVENT_ID_GEN_TCC3_TRG                            64 /* ID for TCC3 event generator TRG */
993 #define EVENT_ID_GEN_TCC3_CNT                            65 /* ID for TCC3 event generator CNT */
994 #define EVENT_ID_GEN_TCC3_MC_0                           66 /* ID for TCC3 event generator MC_0 */
995 #define EVENT_ID_GEN_TCC3_MC_1                           67 /* ID for TCC3 event generator MC_1 */
996 #define EVENT_ID_GEN_TCC4_OVF                            68 /* ID for TCC4 event generator OVF */
997 #define EVENT_ID_GEN_TCC4_TRG                            69 /* ID for TCC4 event generator TRG */
998 #define EVENT_ID_GEN_TCC4_CNT                            70 /* ID for TCC4 event generator CNT */
999 #define EVENT_ID_GEN_TCC4_MC_0                           71 /* ID for TCC4 event generator MC_0 */
1000 #define EVENT_ID_GEN_TCC4_MC_1                           72 /* ID for TCC4 event generator MC_1 */
1001 #define EVENT_ID_GEN_TC0_OVF                             73 /* ID for TC0 event generator OVF */
1002 #define EVENT_ID_GEN_TC0_MC_0                            74 /* ID for TC0 event generator MC_0 */
1003 #define EVENT_ID_GEN_TC0_MC_1                            75 /* ID for TC0 event generator MC_1 */
1004 #define EVENT_ID_GEN_TC1_OVF                             76 /* ID for TC1 event generator OVF */
1005 #define EVENT_ID_GEN_TC1_MC_0                            77 /* ID for TC1 event generator MC_0 */
1006 #define EVENT_ID_GEN_TC1_MC_1                            78 /* ID for TC1 event generator MC_1 */
1007 #define EVENT_ID_GEN_TC2_OVF                             79 /* ID for TC2 event generator OVF */
1008 #define EVENT_ID_GEN_TC2_MC_0                            80 /* ID for TC2 event generator MC_0 */
1009 #define EVENT_ID_GEN_TC2_MC_1                            81 /* ID for TC2 event generator MC_1 */
1010 #define EVENT_ID_GEN_TC3_OVF                             82 /* ID for TC3 event generator OVF */
1011 #define EVENT_ID_GEN_TC3_MC_0                            83 /* ID for TC3 event generator MC_0 */
1012 #define EVENT_ID_GEN_TC3_MC_1                            84 /* ID for TC3 event generator MC_1 */
1013 #define EVENT_ID_GEN_TC4_OVF                             85 /* ID for TC4 event generator OVF */
1014 #define EVENT_ID_GEN_TC4_MC_0                            86 /* ID for TC4 event generator MC_0 */
1015 #define EVENT_ID_GEN_TC4_MC_1                            87 /* ID for TC4 event generator MC_1 */
1016 #define EVENT_ID_GEN_TC5_OVF                             88 /* ID for TC5 event generator OVF */
1017 #define EVENT_ID_GEN_TC5_MC_0                            89 /* ID for TC5 event generator MC_0 */
1018 #define EVENT_ID_GEN_TC5_MC_1                            90 /* ID for TC5 event generator MC_1 */
1019 #define EVENT_ID_GEN_TC6_OVF                             91 /* ID for TC6 event generator OVF */
1020 #define EVENT_ID_GEN_TC6_MC_0                            92 /* ID for TC6 event generator MC_0 */
1021 #define EVENT_ID_GEN_TC6_MC_1                            93 /* ID for TC6 event generator MC_1 */
1022 #define EVENT_ID_GEN_TC7_OVF                             94 /* ID for TC7 event generator OVF */
1023 #define EVENT_ID_GEN_TC7_MC_0                            95 /* ID for TC7 event generator MC_0 */
1024 #define EVENT_ID_GEN_TC7_MC_1                            96 /* ID for TC7 event generator MC_1 */
1025 #define EVENT_ID_GEN_PDEC_OVF                            97 /* ID for PDEC event generator OVF */
1026 #define EVENT_ID_GEN_PDEC_ERR                            98 /* ID for PDEC event generator ERR */
1027 #define EVENT_ID_GEN_PDEC_DIR                            99 /* ID for PDEC event generator DIR */
1028 #define EVENT_ID_GEN_PDEC_VLC                           100 /* ID for PDEC event generator VLC */
1029 #define EVENT_ID_GEN_PDEC_MC_0                          101 /* ID for PDEC event generator MC_0 */
1030 #define EVENT_ID_GEN_PDEC_MC_1                          102 /* ID for PDEC event generator MC_1 */
1031 #define EVENT_ID_GEN_ADC0_RESRDY                        103 /* ID for ADC0 event generator RESRDY */
1032 #define EVENT_ID_GEN_ADC0_WINMON                        104 /* ID for ADC0 event generator WINMON */
1033 #define EVENT_ID_GEN_ADC1_RESRDY                        105 /* ID for ADC1 event generator RESRDY */
1034 #define EVENT_ID_GEN_ADC1_WINMON                        106 /* ID for ADC1 event generator WINMON */
1035 #define EVENT_ID_GEN_AC_COMP_0                          107 /* ID for AC event generator COMP_0 */
1036 #define EVENT_ID_GEN_AC_COMP_1                          108 /* ID for AC event generator COMP_1 */
1037 #define EVENT_ID_GEN_AC_WIN_0                           109 /* ID for AC event generator WIN_0 */
1038 #define EVENT_ID_GEN_DAC_EMPTY_0                        110 /* ID for DAC event generator EMPTY_0 */
1039 #define EVENT_ID_GEN_DAC_EMPTY_1                        111 /* ID for DAC event generator EMPTY_1 */
1040 #define EVENT_ID_GEN_GMAC_TSU_CMP                       114 /* ID for GMAC event generator TSU_CMP */
1041 #define EVENT_ID_GEN_TRNG_READY                         115 /* ID for TRNG event generator READY */
1042 #define EVENT_ID_GEN_CCL_LUTOUT_0                       116 /* ID for CCL event generator LUTOUT_0 */
1043 #define EVENT_ID_GEN_CCL_LUTOUT_1                       117 /* ID for CCL event generator LUTOUT_1 */
1044 #define EVENT_ID_GEN_CCL_LUTOUT_2                       118 /* ID for CCL event generator LUTOUT_2 */
1045 #define EVENT_ID_GEN_CCL_LUTOUT_3                       119 /* ID for CCL event generator LUTOUT_3 */
1046 
1047 /* ************************************************************************** */
1048 /*  Event User IDs for C32CX1025SG61128 */
1049 /* ************************************************************************** */
1050 #define EVENT_ID_USER_RTC_TAMPER                          0 /* ID for RTC event user TAMPER */
1051 #define EVENT_ID_USER_PORT_EV_0                           1 /* ID for PORT event user EV_0 */
1052 #define EVENT_ID_USER_PORT_EV_1                           2 /* ID for PORT event user EV_1 */
1053 #define EVENT_ID_USER_PORT_EV_2                           3 /* ID for PORT event user EV_2 */
1054 #define EVENT_ID_USER_PORT_EV_3                           4 /* ID for PORT event user EV_3 */
1055 #define EVENT_ID_USER_DMAC_CH_0                           5 /* ID for DMAC event user CH_0 */
1056 #define EVENT_ID_USER_DMAC_CH_1                           6 /* ID for DMAC event user CH_1 */
1057 #define EVENT_ID_USER_DMAC_CH_2                           7 /* ID for DMAC event user CH_2 */
1058 #define EVENT_ID_USER_DMAC_CH_3                           8 /* ID for DMAC event user CH_3 */
1059 #define EVENT_ID_USER_DMAC_CH_4                           9 /* ID for DMAC event user CH_4 */
1060 #define EVENT_ID_USER_DMAC_CH_5                          10 /* ID for DMAC event user CH_5 */
1061 #define EVENT_ID_USER_DMAC_CH_6                          11 /* ID for DMAC event user CH_6 */
1062 #define EVENT_ID_USER_DMAC_CH_7                          12 /* ID for DMAC event user CH_7 */
1063 #define EVENT_ID_USER_CM4_TRACE_START                    14 /* ID for CM4 event user TRACE_START */
1064 #define EVENT_ID_USER_CM4_TRACE_STOP                     15 /* ID for CM4 event user TRACE_STOP */
1065 #define EVENT_ID_USER_CM4_TRACE_TRIG                     16 /* ID for CM4 event user TRACE_TRIG */
1066 #define EVENT_ID_USER_TCC0_EV_0                          17 /* ID for TCC0 event user EV_0 */
1067 #define EVENT_ID_USER_TCC0_EV_1                          18 /* ID for TCC0 event user EV_1 */
1068 #define EVENT_ID_USER_TCC0_MC_0                          19 /* ID for TCC0 event user MC_0 */
1069 #define EVENT_ID_USER_TCC0_MC_1                          20 /* ID for TCC0 event user MC_1 */
1070 #define EVENT_ID_USER_TCC0_MC_2                          21 /* ID for TCC0 event user MC_2 */
1071 #define EVENT_ID_USER_TCC0_MC_3                          22 /* ID for TCC0 event user MC_3 */
1072 #define EVENT_ID_USER_TCC0_MC_4                          23 /* ID for TCC0 event user MC_4 */
1073 #define EVENT_ID_USER_TCC0_MC_5                          24 /* ID for TCC0 event user MC_5 */
1074 #define EVENT_ID_USER_TCC1_EV_0                          25 /* ID for TCC1 event user EV_0 */
1075 #define EVENT_ID_USER_TCC1_EV_1                          26 /* ID for TCC1 event user EV_1 */
1076 #define EVENT_ID_USER_TCC1_MC_0                          27 /* ID for TCC1 event user MC_0 */
1077 #define EVENT_ID_USER_TCC1_MC_1                          28 /* ID for TCC1 event user MC_1 */
1078 #define EVENT_ID_USER_TCC1_MC_2                          29 /* ID for TCC1 event user MC_2 */
1079 #define EVENT_ID_USER_TCC1_MC_3                          30 /* ID for TCC1 event user MC_3 */
1080 #define EVENT_ID_USER_TCC2_EV_0                          31 /* ID for TCC2 event user EV_0 */
1081 #define EVENT_ID_USER_TCC2_EV_1                          32 /* ID for TCC2 event user EV_1 */
1082 #define EVENT_ID_USER_TCC2_MC_0                          33 /* ID for TCC2 event user MC_0 */
1083 #define EVENT_ID_USER_TCC2_MC_1                          34 /* ID for TCC2 event user MC_1 */
1084 #define EVENT_ID_USER_TCC2_MC_2                          35 /* ID for TCC2 event user MC_2 */
1085 #define EVENT_ID_USER_TCC3_EV_0                          36 /* ID for TCC3 event user EV_0 */
1086 #define EVENT_ID_USER_TCC3_EV_1                          37 /* ID for TCC3 event user EV_1 */
1087 #define EVENT_ID_USER_TCC3_MC_0                          38 /* ID for TCC3 event user MC_0 */
1088 #define EVENT_ID_USER_TCC3_MC_1                          39 /* ID for TCC3 event user MC_1 */
1089 #define EVENT_ID_USER_TCC4_EV_0                          40 /* ID for TCC4 event user EV_0 */
1090 #define EVENT_ID_USER_TCC4_EV_1                          41 /* ID for TCC4 event user EV_1 */
1091 #define EVENT_ID_USER_TCC4_MC_0                          42 /* ID for TCC4 event user MC_0 */
1092 #define EVENT_ID_USER_TCC4_MC_1                          43 /* ID for TCC4 event user MC_1 */
1093 #define EVENT_ID_USER_TC0_EVU                            44 /* ID for TC0 event user EVU */
1094 #define EVENT_ID_USER_TC1_EVU                            45 /* ID for TC1 event user EVU */
1095 #define EVENT_ID_USER_TC2_EVU                            46 /* ID for TC2 event user EVU */
1096 #define EVENT_ID_USER_TC3_EVU                            47 /* ID for TC3 event user EVU */
1097 #define EVENT_ID_USER_TC4_EVU                            48 /* ID for TC4 event user EVU */
1098 #define EVENT_ID_USER_TC5_EVU                            49 /* ID for TC5 event user EVU */
1099 #define EVENT_ID_USER_TC6_EVU                            50 /* ID for TC6 event user EVU */
1100 #define EVENT_ID_USER_TC7_EVU                            51 /* ID for TC7 event user EVU */
1101 #define EVENT_ID_USER_PDEC_EVU_0                         52 /* ID for PDEC event user EVU_0 */
1102 #define EVENT_ID_USER_PDEC_EVU_1                         53 /* ID for PDEC event user EVU_1 */
1103 #define EVENT_ID_USER_PDEC_EVU_2                         54 /* ID for PDEC event user EVU_2 */
1104 #define EVENT_ID_USER_ADC0_START                         55 /* ID for ADC0 event user START */
1105 #define EVENT_ID_USER_ADC0_SYNC                          56 /* ID for ADC0 event user SYNC */
1106 #define EVENT_ID_USER_ADC1_START                         57 /* ID for ADC1 event user START */
1107 #define EVENT_ID_USER_ADC1_SYNC                          58 /* ID for ADC1 event user SYNC */
1108 #define EVENT_ID_USER_AC_SOC_0                           59 /* ID for AC event user SOC_0 */
1109 #define EVENT_ID_USER_AC_SOC_1                           60 /* ID for AC event user SOC_1 */
1110 #define EVENT_ID_USER_DAC_START_0                        61 /* ID for DAC event user START_0 */
1111 #define EVENT_ID_USER_DAC_START_1                        62 /* ID for DAC event user START_1 */
1112 #define EVENT_ID_USER_CCL_LUTIN_0                        63 /* ID for CCL event user LUTIN_0 */
1113 #define EVENT_ID_USER_CCL_LUTIN_1                        64 /* ID for CCL event user LUTIN_1 */
1114 #define EVENT_ID_USER_CCL_LUTIN_2                        65 /* ID for CCL event user LUTIN_2 */
1115 #define EVENT_ID_USER_CCL_LUTIN_3                        66 /* ID for CCL event user LUTIN_3 */
1116 
1117 #ifdef __cplusplus
1118 }
1119 #endif
1120 
1121 #endif /* _PIC32CX1025SG61128_H_ */
1122 
1123