1/****************************    Data Structures    ***********************************************/
2/**
3  \brief  Union type to access the Application Program Status Register (APSR).
4 */
5typedef union
6{
7  struct
8  {
9#if (__CORTEX_M != 0x04)
10    uint32_t _reserved0:27;              ///< bit:  0..26  Reserved
11#else
12    uint32_t _reserved0:16;              ///< bit:  0..15  Reserved
13    uint32_t GE:4;                       ///< bit: 16..19  Greater than or Equal flags
14    uint32_t _reserved1:7;               ///< bit: 20..26  Reserved
15#endif
16    uint32_t Q:1;                        ///< bit:     27  Saturation condition flag
17    uint32_t V:1;                        ///< bit:     28  Overflow condition code flag
18    uint32_t C:1;                        ///< bit:     29  Carry condition code flag
19    uint32_t Z:1;                        ///< bit:     30  Zero condition code flag
20    uint32_t N:1;                        ///< bit:     31  Negative condition code flag
21  } b;                                   ///< Structure used for bit  access
22  uint32_t w;                            ///< Type      used for word access
23} APSR_Type;
24
25
26/**************************************************************************************************/
27/**
28  \brief  Union type to access the Interrupt Program Status Register (IPSR).
29 */
30typedef union
31{
32  struct
33  {
34    uint32_t ISR:9;                      ///< bit:  0.. 8  Exception number
35    uint32_t _reserved0:23;              ///< bit:  9..31  Reserved
36  } b;                                   ///< Structure used for bit  access
37  uint32_t w;                            ///< Type      used for word access
38} IPSR_Type;
39
40
41/**************************************************************************************************/
42/**
43  \brief  Union type to access the Special-Purpose Program Status Registers (xPSR).
44 */
45typedef union
46{
47  struct
48  {
49    uint32_t ISR:9;                      ///< bit:  0.. 8  Exception number
50#if (__CORTEX_M != 0x04)
51    uint32_t _reserved0:15;              ///< bit:  9..23  Reserved
52#else
53    uint32_t _reserved0:7;               ///< bit:  9..15  Reserved
54    uint32_t GE:4;                       ///< bit: 16..19  Greater than or Equal flags
55    uint32_t _reserved1:4;               ///< bit: 20..23  Reserved
56#endif
57    uint32_t T:1;                        ///< bit:     24  Thumb bit        (read 0)
58    uint32_t IT:2;                       ///< bit: 25..26  saved IT state   (read 0)
59    uint32_t Q:1;                        ///< bit:     27  Saturation condition flag
60    uint32_t V:1;                        ///< bit:     28  Overflow condition code flag
61    uint32_t C:1;                        ///< bit:     29  Carry condition code flag
62    uint32_t Z:1;                        ///< bit:     30  Zero condition code flag
63    uint32_t N:1;                        ///< bit:     31  Negative condition code flag
64  } b;                                   ///< Structure used for bit  access
65  uint32_t w;                            ///< Type      used for word access
66} xPSR_Type;
67
68
69/**************************************************************************************************/
70/**
71  \brief  Union type to access the Control Registers (CONTROL).
72 */
73typedef union
74{
75  struct
76  {
77    uint32_t nPRIV:1;                    ///< bit:      0  Execution privilege in Thread mode
78    uint32_t SPSEL:1;                    ///< bit:      1  Stack to be used
79    uint32_t FPCA:1;                     ///< bit:      2  FP extension active flag
80    uint32_t _reserved0:29;              ///< bit:  3..31  Reserved
81  } b;                                   ///< Structure used for bit  access
82  uint32_t w;                            ///< Type      used for word access
83} CONTROL_Type;
84
85
86/**************************************************************************************************/
87/**
88  \brief  Structure type to access the Nested Vectored Interrupt Controller (NVIC).
89 */
90typedef struct
91{
92  __IOM uint32_t ISER[8];                ///< Offset: 0x000 (R/W)  Interrupt Set Enable Register
93        uint32_t RESERVED0[24];          ///< Reserved
94  __IOM uint32_t ICER[8];                ///< Offset: 0x080 (R/W)  Interrupt Clear Enable Register
95        uint32_t RSERVED1[24];           ///< Reserved
96  __IOM uint32_t ISPR[8];                ///< Offset: 0x100 (R/W)  Interrupt Set Pending Register
97        uint32_t RESERVED2[24];          ///< Reserved
98  __IOM uint32_t ICPR[8];                ///< Offset: 0x180 (R/W)  Interrupt Clear Pending Register
99        uint32_t RESERVED3[24];          ///< Reserved
100  __IOM uint32_t IABR[8];                ///< Offset: 0x200 (R/W)  Interrupt Active bit Register
101        uint32_t RESERVED4[56];          ///< Reserved
102  __IOM uint8_t  IPR[240];                ///< Offset: 0x300 (R/W)  Interrupt Priority Register (8Bit wide)
103        uint32_t RESERVED5[644];         ///< Reserved
104  __OM  uint32_t STIR;                   ///< Offset: 0xE00 ( /W)  Software Trigger Interrupt Register
105}  NVIC_Type;
106
107
108/**************************************************************************************************/
109/**
110  \brief  Structure type to access the System Control Block (SCB).
111 */
112typedef struct
113{
114  __IM  uint32_t CPUID;                  ///< Offset: 0x000 (R/ )  CPUID Base Register
115  __IOM uint32_t ICSR;                   ///< Offset: 0x004 (R/W)  Interrupt Control and State Register
116  __IOM uint32_t VTOR;                   ///< Offset: 0x008 (R/W)  Vector Table Offset Register
117  __IOM uint32_t AIRCR;                  ///< Offset: 0x00C (R/W)  Application Interrupt and Reset Control Register
118  __IOM uint32_t SCR;                    ///< Offset: 0x010 (R/W)  System Control Register
119  __IOM uint32_t CCR;                    ///< Offset: 0x014 (R/W)  Configuration Control Register
120  __IOM uint8_t  SHPR[12U];              ///< Offset: 0x018 (R/W)  System Handlers Priority Registers (4-7, 8-11, 12-15)
121  __IOM uint32_t SHCSR;                  ///< Offset: 0x024 (R/W)  System Handler Control and State Register
122  __IOM uint32_t CFSR;                   ///< Offset: 0x028 (R/W)  Configurable Fault Status Register
123  __IOM uint32_t HFSR;                   ///< Offset: 0x02C (R/W)  HardFault Status Register
124  __IOM uint32_t DFSR;                   ///< Offset: 0x030 (R/W)  Debug Fault Status Register
125  __IOM uint32_t MMFAR;                  ///< Offset: 0x034 (R/W)  MemManage Fault Address Register
126  __IOM uint32_t BFAR;                   ///< Offset: 0x038 (R/W)  BusFault Address Register
127  __IOM uint32_t AFSR;                   ///< Offset: 0x03C (R/W)  Auxiliary Fault Status Register
128  __IM  uint32_t ID_PFR[2U];             ///< Offset: 0x040 (R/ )  Processor Feature Register
129  __IM  uint32_t ID_DFR;                 ///< Offset: 0x048 (R/ )  Debug Feature Register
130  __IM  uint32_t ID_AFR;                 ///< Offset: 0x04C (R/ )  Auxiliary Feature Register
131  __IM  uint32_t ID_MMFR[4U];            ///< Offset: 0x050 (R/ )  Memory Model Feature Register
132  __IM  uint32_t ID_ISAR[5U];            ///< Offset: 0x060 (R/ )  Instruction Set Attributes Register
133//        uint32_t RESERVED0[5U];
134  __IOM uint32_t CPACR;                  ///< Offset: 0x088 (R/W)  Coprocessor Access Control Register
135//        uint32_t RESERVED3[93U];
136  __OM  uint32_t STIR;                   ///< Offset: 0x200 ( /W)  Software Triggered Interrupt Register
137} SCB_Type;
138
139
140/**************************************************************************************************/
141/**
142  \brief  Structure type to access the System Control and ID Register not in the SCB.
143 */
144typedef struct
145{
146        uint32_t RESERVED0[1];           /*!< Reserved */
147  __IM  uint32_t ICTR;                   /*!< Offset: 0x004 (R/ )  Interrupt Controller Type Register
148                                            \note available for Cortex-M3, Cortex-M4, Cortex-M7, Cortex-M33, Cortex-M33P, SecureCore SC300 */
149  __IOM uint32_t ACTLR;                  /*!< Offset: 0x008 (R/W)  Auxiliary Control Register
150                                            \note available for Cortex-M1, Cortex-M3 , Cortex-M4, Cortex-M7, Cortex-M33, Cortex-M33P, SecureCore SC000, SecureCore SC300 */
151  __IOM uint32_t CPPWR;                  /*!< Offset: 0x00C (R/W)  Coprocessor Power Control Register
152                                            \note available for Cortex-M33, Cortex-M33P */
153} SCnSCB_Type;
154
155
156/**************************************************************************************************/
157/**
158  \brief  Structure type to access the Implementation Control Block Register (ICB).
159  \note replaces SCnSCB_Type (only on Cortex-M55/M85)
160 */
161typedef struct
162{
163        uint32_t RESERVED0[1U];
164  __IM  uint32_t ICTR;                   /*!< Offset: 0x004 (R/ )  Interrupt Controller Type Register */
165  __IOM uint32_t ACTLR;                  /*!< Offset: 0x008 (R/W)  Auxiliary Control Register */
166  __IOM uint32_t CPPWR;                  /*!< Offset: 0x00C (R/W)  Coprocessor Power Control  Register */
167} ICB_Type;
168
169
170/**************************************************************************************************/
171/** \brief  Structure type to access the System Timer (SysTick).
172 */
173typedef struct
174{
175  __IOM uint32_t CTRL;                   ///< Offset: 0x000 (R/W)  SysTick Control and Status Register
176  __IOM uint32_t LOAD;                   ///< Offset: 0x004 (R/W)  SysTick Reload Value Register
177  __IOM uint32_t VAL;                    ///< Offset: 0x008 (R/W)  SysTick Current Value Register
178  __IM  uint32_t CALIB;                  ///< Offset: 0x00C (R/ )  SysTick Calibration Register
179} SysTick_Type;
180
181
182/**************************************************************************************************/
183/**
184  \brief  Structure type to access the Instrumentation Trace Macrocell Register (ITM).
185 */
186typedef struct
187{
188  __OM  union
189  {
190    __OM  uint8_t    u8;                 /*!< Offset: 0x000 ( /W)  ITM Stimulus Port 8-bit */
191    __OM  uint16_t   u16;                /*!< Offset: 0x000 ( /W)  ITM Stimulus Port 16-bit */
192    __OM  uint32_t   u32;                /*!< Offset: 0x000 ( /W)  ITM Stimulus Port 32-bit */
193  }  PORT [32U];                         /*!< Offset: 0x000 ( /W)  ITM Stimulus Port Registers */
194//      uint32_t RESERVED0[864U];
195  __IOM uint32_t TER;                    /*!< Offset: 0xE00 (R/W)  ITM Trace Enable Register */
196//      uint32_t RESERVED1[15U];
197  __IOM uint32_t TPR;                    /*!< Offset: 0xE40 (R/W)  ITM Trace Privilege Register */
198//      uint32_t RESERVED2[15U];
199  __IOM uint32_t TCR;                    /*!< Offset: 0xE80 (R/W)  ITM Trace Control Register */
200//      uint32_t RESERVED3[29U];
201  __OM  uint32_t IWR;                    /*!< Offset: 0xEF8 ( /W)  ITM Integration Write Register */
202  __IM  uint32_t IRR;                    /*!< Offset: 0xEFC (R/ )  ITM Integration Read Register */
203  __IOM uint32_t IMCR;                   /*!< Offset: 0xF00 (R/W)  ITM Integration Mode Control Register */
204//      uint32_t RESERVED4[43U];
205  __OM  uint32_t LAR;                    /*!< Offset: 0xFB0 ( /W)  ITM Lock Access Register */
206  __IM  uint32_t LSR;                    /*!< Offset: 0xFB4 (R/ )  ITM Lock Status Register */
207//      uint32_t RESERVED5[1U];
208  __IM  uint32_t DEVARCH;                /*!< Offset: 0xFBC (R/ )  ITM Device Architecture Register (Cortex-M33 only) */
209//      uint32_t RESERVED6[4U];
210} ITM_Type;
211
212
213/**************************************************************************************************/
214/**
215  \brief  Structure type to access the Memory Protection Unit (MPU).
216 */
217typedef struct
218{
219  __IM  uint32_t TYPE;                   ///< Offset: 0x000 (R/ )  MPU Type Register
220  __IOM uint32_t CTRL;                   ///< Offset: 0x004 (R/W)  MPU Control Register
221  __IOM uint32_t RNR;                    ///< Offset: 0x008 (R/W)  MPU Region RNRber Register
222  __IOM uint32_t RBAR;                   ///< Offset: 0x00C (R/W)  MPU Region Base Address Register
223  __IOM uint32_t RASR;                   ///< Offset: 0x010 (R/W)  MPU Region Attribute and Size Register
224  __IOM uint32_t RBAR_A1;                ///< Offset: 0x014 (R/W)  MPU Alias 1 Region Base Address Register
225  __IOM uint32_t RASR_A1;                ///< Offset: 0x018 (R/W)  MPU Alias 1 Region Attribute and Size Register
226  __IOM uint32_t RBAR_A2;                ///< Offset: 0x01C (R/W)  MPU Alias 2 Region Base Address Register
227  __IOM uint32_t RASR_A2;                ///< Offset: 0x020 (R/W)  MPU Alias 2 Region Attribute and Size Register
228  __IOM uint32_t RBAR_A3;                ///< Offset: 0x024 (R/W)  MPU Alias 3 Region Base Address Register
229  __IOM uint32_t RASR_A3;                ///< Offset: 0x028 (R/W)  MPU Alias 3 Region Attribute and Size Register
230} MPU_Type;
231
232
233/**************************************************************************************************/
234/**
235  \brief  Structure type to access the Floating Point Unit (FPU).
236 */
237typedef struct
238{
239//  uint32_t RESERVED0[1];                 ///< Reserved
240  __IOM uint32_t FPCCR;                  ///< Offset: 0x004 (R/W)  Floating-Point Context Control Register
241  __IOM uint32_t FPCAR;                  ///< Offset: 0x008 (R/W)  Floating-Point Context Address Register
242  __IOM uint32_t FPDSCR;                 ///< Offset: 0x00C (R/W)  Floating-Point Default Status Control Register
243  __IM  uint32_t MVFR0;                  ///< Offset: 0x010 (R/ )  Media and FP Feature Register 0
244  __IM  uint32_t MVFR1;                  ///< Offset: 0x014 (R/ )  Media and FP Feature Register 1
245} FPU_Type;
246
247
248/**************************************************************************************************/
249/**
250  \brief  Structure type to access the Debug Control Block Registers (DCB).
251 */
252typedef struct
253{
254  __IOM uint32_t DHCSR;                  ///< Offset: 0x000 (R/W)  Debug Halting Control and Status Register
255  __OM  uint32_t DCRSR;                  ///< Offset: 0x004 ( /W)  Debug Core Register Selector Register
256  __IOM uint32_t DCRDR;                  ///< Offset: 0x008 (R/W)  Debug Core Register Data Register
257  __IOM uint32_t DEMCR;                  ///< Offset: 0x00C (R/W)  Debug Exception and Monitor Control Register
258  __OM  uint32_t DSCEMCR;                ///< Offset: 0x010 ( /W)  Debug Set Clear Exception and Monitor Control Register (Armv8.1-M only)
259  __IOM uint32_t DAUTHCTRL;              ///< Offset: 0x014 (R/W)  Debug Authentication Control Register (Armv8-M only)
260  __IOM uint32_t DSCSR;                  ///< Offset: 0x018 (R/W)  Debug Security Control and Status Register (Armv8-M only)
261} DCB_Type;
262
263
264/**************************************************************************************************/
265/**
266  \brief  Structure type to access the Data Watchpoint and Trace Register (DWT).
267 */
268typedef struct
269{
270  __IOM uint32_t CTRL;                   ///< Offset: 0x000 (R/W)  Control Register
271  __IOM uint32_t CYCCNT;                 ///< Offset: 0x004 (R/W)  Cycle Count Register
272  __IOM uint32_t CPICNT;                 ///< Offset: 0x008 (R/W)  CPI Count Register
273  __IOM uint32_t EXCCNT;                 ///< Offset: 0x00C (R/W)  Exception Overhead Count Register
274  __IOM uint32_t SLEEPCNT;               ///< Offset: 0x010 (R/W)  Sleep Count Register
275  __IOM uint32_t LSUCNT;                 ///< Offset: 0x014 (R/W)  LSU Count Register
276  __IOM uint32_t FOLDCNT;                ///< Offset: 0x018 (R/W)  Folded-instruction Count Register
277  __IM  uint32_t PCSR;                   ///< Offset: 0x01C (R/ )  Program Counter Sample Register
278  __IOM uint32_t COMP0;                  ///< Offset: 0x020 (R/W)  Comparator Register 0
279  __IOM uint32_t MASK0;                  ///< Offset: 0x024 (R/W)  Mask Register 0
280  __IOM uint32_t FUNCTION0;              ///< Offset: 0x028 (R/W)  Function Register 0
281//        uint32_t RESERVED0[1];           ///< Reserved
282  __IOM uint32_t COMP1;                  ///< Offset: 0x030 (R/W)  Comparator Register 1
283  __IOM uint32_t MASK1;                  ///< Offset: 0x034 (R/W)  Mask Register 1
284  __IOM uint32_t FUNCTION1;              ///< Offset: 0x038 (R/W)  Function Register 1
285//        uint32_t RESERVED1[1];           ///< Reserved
286  __IOM uint32_t COMP2;                  ///< Offset: 0x040 (R/W)  Comparator Register 2
287  __IOM uint32_t MASK2;                  ///< Offset: 0x044 (R/W)  Mask Register 2
288  __IOM uint32_t FUNCTION2;              ///< Offset: 0x048 (R/W)  Function Register 2
289//        uint32_t RESERVED2[1];           ///< Reserved
290  __IOM uint32_t COMP3;                  ///< Offset: 0x050 (R/W)  Comparator Register 3
291  __IOM uint32_t MASK3;                  ///< Offset: 0x054 (R/W)  Mask Register 3
292  __IOM uint32_t FUNCTION3;              ///< Offset: 0x058 (R/W)  Function Register 3
293} DWT_Type;
294
295
296/**************************************************************************************************/
297/**
298  \brief  Structure type to access the Trace Port Interface Register (TPI).
299 */
300typedef struct
301{
302  __IOM uint32_t SSPSR;                  ///< Offset: 0x000 (R/ )  Supported Parallel Port Size Register
303  __IOM uint32_t CSPSR;                  ///< Offset: 0x004 (R/W)  Current Parallel Port Size Register
304//        uint32_t RESERVED0[2];           ///< Reserved
305  __IOM uint32_t ACPR;                   ///< Offset: 0x010 (R/W)  Asynchronous Clock Prescaler Register
306//        uint32_t RESERVED1[55];          ///< Reserved
307  __IOM uint32_t SPPR;                   ///< Offset: 0x0F0 (R/W)  Selected Pin Protocol Register
308//        uint32_t RESERVED2[131];         ///< Reserved
309  __IM  uint32_t FFSR;                   ///< Offset: 0x300 (R/ )  Formatter and Flush Status Register
310  __IOM uint32_t FFCR;                   ///< Offset: 0x304 (R/W)  Formatter and Flush Control Register
311  __IM  uint32_t FSCR;                   ///< Offset: 0x308 (R/ )  Formatter Synchronization Counter Register
312//        uint32_t RESERVED3[759];         ///< Reserved
313  __IM  uint32_t TRIGGER;                ///< Offset: 0xEE8 (R/ )  TRIGGER
314  __IM  uint32_t FIFO0;                  ///< Offset: 0xEEC (R/ )  Integration ETM Data
315  __IM  uint32_t ITATBCTR2;              ///< Offset: 0xEF0 (R/ )  ITATBCTR2
316//        uint32_t RESERVED4[1];           ///< Reserved
317  __IM  uint32_t ITATBCTR0;              ///< Offset: 0xEF8 (R/ )  ITATBCTR0
318  __IM  uint32_t FIFO1;                  ///< Offset: 0xEFC (R/ )  Integration ITM Data
319  __IOM uint32_t ITCTRL;                 ///< Offset: 0xF00 (R/W)  Integration Mode Control
320//        uint32_t RESERVED5[39];          ///< Reserved
321  __IOM uint32_t CLAIMSET;               ///< Offset: 0xFA0 (R/W)  Claim tag set
322  __IOM uint32_t CLAIMCLR;               ///< Offset: 0xFA4 (R/W)  Claim tag clear
323//        uint32_t RESERVED7[8];           ///< Reserved
324  __IM  uint32_t DEVID;                  ///< Offset: 0xFC8 (R/ )  TPIU_DEVID
325  __IM  uint32_t DEVTYPE;                ///< Offset: 0xFCC (R/ )  TPIU_DEVTYPE
326} TPIU_Type;
327
328
329/**************************************************************************************************/
330/**
331  \brief  Structure type to access the Performance Monitoring Unit (PMU).
332 */
333typedef struct
334{
335  __IOM uint32_t EVCNTR[__PMU_NUM_EVENTCNT];        ///< Offset: 0x0 (R/W)    Event Counter Registers
336//#if __PMU_NUM_EVENTCNT<31
337//        uint32_t RESERVED0[31U-__PMU_NUM_EVENTCNT];
338//#endif
339  __IOM uint32_t CCNTR;                             ///< Offset: 0x7C (R/W)   Cycle Counter Register
340//        uint32_t RESERVED1[224];
341  __IOM uint32_t EVTYPER[__PMU_NUM_EVENTCNT];       ///< Offset: 0x400 (R/W)  Event Type and Filter Registers
342//#if __PMU_NUM_EVENTCNT<31
343//        uint32_t RESERVED2[31U-__PMU_NUM_EVENTCNT];
344//#endif
345  __IOM uint32_t CCFILTR;                           ///< Offset: 0x47C (R/W)  Cycle Counter Filter Register
346//        uint32_t RESERVED3[480];
347  __IOM uint32_t CNTENSET;                          ///< Offset: 0xC00 (R/W)  Count Enable Set Register
348//        uint32_t RESERVED4[7];
349  __IOM uint32_t CNTENCLR;                          ///< Offset: 0xC20 (R/W)  Count Enable Clear Register
350//        uint32_t RESERVED5[7];
351  __IOM uint32_t INTENSET;                          ///< Offset: 0xC40 (R/W)  Interrupt Enable Set Register
352//        uint32_t RESERVED6[7];
353  __IOM uint32_t INTENCLR;                          ///< Offset: 0xC60 (R/W)  Interrupt Enable Clear Register
354//        uint32_t RESERVED7[7];
355  __IOM uint32_t OVSCLR;                            ///< Offset: 0xC80 (R/W)  Overflow Flag Status Clear Register
356//        uint32_t RESERVED8[7];
357  __IOM uint32_t SWINC;                             ///< Offset: 0xCA0 (R/W)  Software Increment Register
358//        uint32_t RESERVED9[7];
359  __IOM uint32_t OVSSET;                            ///< Offset: 0xCC0 (R/W)  Overflow Flag Status Set Register
360//        uint32_t RESERVED10[79];
361  __IOM uint32_t TYPE;                              ///< Offset: 0xE00 (R/W)  Type Register
362  __IOM uint32_t CTRL;                              ///< Offset: 0xE04 (R/W)  Control Register
363//        uint32_t RESERVED11[108];
364  __IOM uint32_t AUTHSTATUS;                        ///< Offset: 0xFB8 (R/W)  Authentication Status Register
365  __IOM uint32_t DEVARCH;                           ///< Offset: 0xFBC (R/W)  Device Architecture Register
366//        uint32_t RESERVED12[3];
367  __IOM uint32_t DEVTYPE;                           ///< Offset: 0xFCC (R/W)  Device Type Register
368} PMU_Type;
369
370
371/**************************************************************************************************/
372/**
373  \brief  Structure type to access the External Wakeup Interrupt Controller Registers (EWIC).
374 */
375typedef struct
376{
377  __IOM uint32_t EWIC_CR;                ///< Offset: 0x000 (R/W)  EWIC Control Register
378  __IOM uint32_t EWIC_ASCR;              ///< Offset: 0x004 (R/W)  EWIC Automatic Sequence Control Register
379  __OM  uint32_t EWIC_CLRMASK;           ///< Offset: 0x008 ( /W)  EWIC Clear Mask Register
380  __IM  uint32_t EWIC_NUMID;             ///< Offset: 0x00C (R/ )  EWIC Event Number ID Register
381//        uint32_t RESERVED0[124U];
382  __IOM uint32_t EWIC_MASKA;             ///< Offset: 0x200 (R/W)  EWIC MaskA Register
383  __IOM uint32_t EWIC_MASKn[15];         ///< Offset: 0x204 (R/W)  EWIC Maskn Registers
384//        uint32_t RESERVED1[112U];
385  __IM  uint32_t EWIC_PENDA;             ///< Offset: 0x400 (R/ )  EWIC PendA Event Register
386  __IOM uint32_t EWIC_PENDn[15];         ///< Offset: 0x404 (R/W)  EWIC Pendn Event Registers
387//        uint32_t RESERVED2[112U];
388  __IM  uint32_t EWIC_PSR;               ///< Offset: 0x600 (R/ )  EWIC Pend Summary Register
389} EWIC_Type;
390
391
392/**
393  \brief  Structure type to access the Debug Identification Block Registers (DIB).
394 */
395typedef struct
396{
397//        uint32_t RESERVED0[2U];
398  __IM  uint32_t DAUTHSTATUS;            ///< Offset: 0x008 (R/ )  Debug Authentication Status Register
399  __IM  uint32_t DDEVARCH;               ///< Offset: 0x00C (R/ )  SCS Device Architecture Register
400//        uint32_t RESERVED1[3U];
401  __IM  uint32_t DDEVTYPE;               ///< Offset: 0x01C (R/ )  SCS Device Type Register
402} DIB_Type;
403