ra4w1_pac/
lib.rs

1/*
2DISCLAIMER
3This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products.
4No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all
5applicable laws, including copyright laws.
6THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED
7OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
8NON-INFRINGEMENT.  ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY
9LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT,
10INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR
11ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
12Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability
13of this software. By using this software, you agree to the additional terms and conditions found by accessing the
14following link:
15http://www.renesas.com/disclaimer
16
17*/
18// Generated from SVD 1.0, with svd2pac 0.6.0 on Thu, 24 Jul 2025 04:50:19 +0000
19#![cfg_attr(not(feature = "tracing"), no_std)]
20#![allow(non_camel_case_types)]
21#![doc = "ARM 32-bit Cortex-M4F Microcontroller based device, CPU clock up to 48MHz, etc."]
22pub mod common;
23pub use common::*;
24
25#[cfg(feature = "tracing")]
26pub mod reg_name;
27#[cfg(feature = "tracing")]
28pub mod tracing;
29
30#[cfg(feature = "acmplp")]
31pub mod acmplp;
32#[cfg(feature = "adc140")]
33pub mod adc140;
34#[cfg(feature = "agt0")]
35pub mod agt0;
36#[cfg(feature = "bus")]
37pub mod bus;
38#[cfg(feature = "cac")]
39pub mod cac;
40#[cfg(feature = "can0")]
41pub mod can0;
42#[cfg(feature = "crc")]
43pub mod crc;
44#[cfg(feature = "ctsu")]
45pub mod ctsu;
46#[cfg(feature = "dac12")]
47pub mod dac12;
48#[cfg(feature = "dac8")]
49pub mod dac8;
50#[cfg(feature = "dbg")]
51pub mod dbg;
52#[cfg(feature = "dma")]
53pub mod dma;
54#[cfg(feature = "dmac0")]
55pub mod dmac0;
56#[cfg(feature = "doc")]
57pub mod doc;
58#[cfg(feature = "dtc")]
59pub mod dtc;
60#[cfg(feature = "elc")]
61pub mod elc;
62#[cfg(feature = "fcache")]
63pub mod fcache;
64#[cfg(feature = "gpt164")]
65pub mod gpt164;
66#[cfg(feature = "gpt320")]
67pub mod gpt320;
68#[cfg(feature = "gpt_ops")]
69pub mod gpt_ops;
70#[cfg(feature = "icu")]
71pub mod icu;
72#[cfg(feature = "iic0")]
73pub mod iic0;
74#[cfg(feature = "iic1")]
75pub mod iic1;
76#[cfg(feature = "iwdt")]
77pub mod iwdt;
78#[cfg(feature = "kint")]
79pub mod kint;
80#[cfg(feature = "mmf")]
81pub mod mmf;
82#[cfg(feature = "mmpu")]
83pub mod mmpu;
84#[cfg(feature = "mstp")]
85pub mod mstp;
86#[cfg(feature = "opamp")]
87pub mod opamp;
88#[cfg(feature = "pfs")]
89pub mod pfs;
90#[cfg(feature = "pmisc")]
91pub mod pmisc;
92#[cfg(feature = "poeg")]
93pub mod poeg;
94#[cfg(feature = "port0")]
95pub mod port0;
96#[cfg(feature = "port1")]
97pub mod port1;
98#[cfg(feature = "rtc")]
99pub mod rtc;
100#[cfg(feature = "sci0")]
101pub mod sci0;
102#[cfg(feature = "sci2")]
103pub mod sci2;
104#[cfg(feature = "slcdc")]
105pub mod slcdc;
106#[cfg(feature = "smpu")]
107pub mod smpu;
108#[cfg(feature = "spi0")]
109pub mod spi0;
110#[cfg(feature = "spi1")]
111pub mod spi1;
112#[cfg(feature = "spmon")]
113pub mod spmon;
114#[cfg(feature = "sram")]
115pub mod sram;
116#[cfg(feature = "system")]
117pub mod system;
118#[cfg(feature = "tsn")]
119pub mod tsn;
120#[cfg(feature = "usbfs")]
121pub mod usbfs;
122#[cfg(feature = "wdt")]
123pub mod wdt;
124
125#[cfg(feature = "poeg")]
126#[derive(Copy, Clone, Eq, PartialEq)]
127pub struct Poeg {
128    ptr: *mut u8,
129}
130#[cfg(feature = "poeg")]
131pub const POEG: self::Poeg = self::Poeg {
132    ptr: 0x40042000u32 as _,
133};
134#[cfg(feature = "gpt320")]
135#[derive(Copy, Clone, Eq, PartialEq)]
136pub struct Gpt320 {
137    ptr: *mut u8,
138}
139#[cfg(feature = "gpt320")]
140pub const GPT320: self::Gpt320 = self::Gpt320 {
141    ptr: 0x40078000u32 as _,
142};
143#[cfg(feature = "gpt321")]
144pub const GPT321: self::Gpt320 = self::Gpt320 {
145    ptr: 0x40078100u32 as _,
146};
147#[cfg(feature = "gpt322")]
148pub const GPT322: self::Gpt320 = self::Gpt320 {
149    ptr: 0x40078200u32 as _,
150};
151#[cfg(feature = "gpt323")]
152pub const GPT323: self::Gpt320 = self::Gpt320 {
153    ptr: 0x40078300u32 as _,
154};
155#[cfg(feature = "gpt164")]
156#[derive(Copy, Clone, Eq, PartialEq)]
157pub struct Gpt164 {
158    ptr: *mut u8,
159}
160#[cfg(feature = "gpt164")]
161pub const GPT164: self::Gpt164 = self::Gpt164 {
162    ptr: 0x40078400u32 as _,
163};
164#[cfg(feature = "gpt165")]
165pub const GPT165: self::Gpt164 = self::Gpt164 {
166    ptr: 0x40078500u32 as _,
167};
168#[cfg(feature = "gpt166")]
169pub const GPT166: self::Gpt164 = self::Gpt164 {
170    ptr: 0x40078600u32 as _,
171};
172#[cfg(feature = "gpt167")]
173pub const GPT167: self::Gpt164 = self::Gpt164 {
174    ptr: 0x40078700u32 as _,
175};
176#[cfg(feature = "gpt168")]
177pub const GPT168: self::Gpt164 = self::Gpt164 {
178    ptr: 0x40078800u32 as _,
179};
180#[cfg(feature = "gpt169")]
181pub const GPT169: self::Gpt164 = self::Gpt164 {
182    ptr: 0x40078900u32 as _,
183};
184#[cfg(feature = "gpt_ops")]
185#[derive(Copy, Clone, Eq, PartialEq)]
186pub struct GptOps {
187    ptr: *mut u8,
188}
189#[cfg(feature = "gpt_ops")]
190pub const GPT_OPS: self::GptOps = self::GptOps {
191    ptr: 0x40078ff0u32 as _,
192};
193#[cfg(feature = "agt0")]
194#[derive(Copy, Clone, Eq, PartialEq)]
195pub struct Agt0 {
196    ptr: *mut u8,
197}
198#[cfg(feature = "agt0")]
199pub const AGT0: self::Agt0 = self::Agt0 {
200    ptr: 0x40084000u32 as _,
201};
202#[cfg(feature = "agt1")]
203pub const AGT1: self::Agt0 = self::Agt0 {
204    ptr: 0x40084100u32 as _,
205};
206#[cfg(feature = "rtc")]
207#[derive(Copy, Clone, Eq, PartialEq)]
208pub struct Rtc {
209    ptr: *mut u8,
210}
211#[cfg(feature = "rtc")]
212pub const RTC: self::Rtc = self::Rtc {
213    ptr: 0x40044000u32 as _,
214};
215#[cfg(feature = "system")]
216#[derive(Copy, Clone, Eq, PartialEq)]
217pub struct System {
218    ptr: *mut u8,
219}
220#[cfg(feature = "system")]
221pub const SYSTEM: self::System = self::System {
222    ptr: 0x4001e000u32 as _,
223};
224#[cfg(feature = "mstp")]
225#[derive(Copy, Clone, Eq, PartialEq)]
226pub struct Mstp {
227    ptr: *mut u8,
228}
229#[cfg(feature = "mstp")]
230pub const MSTP: self::Mstp = self::Mstp {
231    ptr: 0x40047000u32 as _,
232};
233#[cfg(feature = "fcache")]
234#[derive(Copy, Clone, Eq, PartialEq)]
235pub struct Fcache {
236    ptr: *mut u8,
237}
238#[cfg(feature = "fcache")]
239pub const FCACHE: self::Fcache = self::Fcache {
240    ptr: 0x4001c000u32 as _,
241};
242#[cfg(feature = "icu")]
243#[derive(Copy, Clone, Eq, PartialEq)]
244pub struct Icu {
245    ptr: *mut u8,
246}
247#[cfg(feature = "icu")]
248pub const ICU: self::Icu = self::Icu {
249    ptr: 0x40006000u32 as _,
250};
251#[cfg(feature = "dmac0")]
252#[derive(Copy, Clone, Eq, PartialEq)]
253pub struct Dmac0 {
254    ptr: *mut u8,
255}
256#[cfg(feature = "dmac0")]
257pub const DMAC0: self::Dmac0 = self::Dmac0 {
258    ptr: 0x40005000u32 as _,
259};
260#[cfg(feature = "dmac1")]
261pub const DMAC1: self::Dmac0 = self::Dmac0 {
262    ptr: 0x40005040u32 as _,
263};
264#[cfg(feature = "dmac2")]
265pub const DMAC2: self::Dmac0 = self::Dmac0 {
266    ptr: 0x40005080u32 as _,
267};
268#[cfg(feature = "dmac3")]
269pub const DMAC3: self::Dmac0 = self::Dmac0 {
270    ptr: 0x400050c0u32 as _,
271};
272#[cfg(feature = "dma")]
273#[derive(Copy, Clone, Eq, PartialEq)]
274pub struct Dma {
275    ptr: *mut u8,
276}
277#[cfg(feature = "dma")]
278pub const DMA: self::Dma = self::Dma {
279    ptr: 0x40005200u32 as _,
280};
281#[cfg(feature = "dbg")]
282#[derive(Copy, Clone, Eq, PartialEq)]
283pub struct Dbg {
284    ptr: *mut u8,
285}
286#[cfg(feature = "dbg")]
287pub const DBG: self::Dbg = self::Dbg {
288    ptr: 0x4001b000u32 as _,
289};
290#[cfg(feature = "bus")]
291#[derive(Copy, Clone, Eq, PartialEq)]
292pub struct Bus {
293    ptr: *mut u8,
294}
295#[cfg(feature = "bus")]
296pub const BUS: self::Bus = self::Bus {
297    ptr: 0x40003000u32 as _,
298};
299#[cfg(feature = "sram")]
300#[derive(Copy, Clone, Eq, PartialEq)]
301pub struct Sram {
302    ptr: *mut u8,
303}
304#[cfg(feature = "sram")]
305pub const SRAM: self::Sram = self::Sram {
306    ptr: 0x40002000u32 as _,
307};
308#[cfg(feature = "mmpu")]
309#[derive(Copy, Clone, Eq, PartialEq)]
310pub struct Mmpu {
311    ptr: *mut u8,
312}
313#[cfg(feature = "mmpu")]
314pub const MMPU: self::Mmpu = self::Mmpu {
315    ptr: 0x40000000u32 as _,
316};
317#[cfg(feature = "smpu")]
318#[derive(Copy, Clone, Eq, PartialEq)]
319pub struct Smpu {
320    ptr: *mut u8,
321}
322#[cfg(feature = "smpu")]
323pub const SMPU: self::Smpu = self::Smpu {
324    ptr: 0x40000c00u32 as _,
325};
326#[cfg(feature = "spmon")]
327#[derive(Copy, Clone, Eq, PartialEq)]
328pub struct Spmon {
329    ptr: *mut u8,
330}
331#[cfg(feature = "spmon")]
332pub const SPMON: self::Spmon = self::Spmon {
333    ptr: 0x40000d00u32 as _,
334};
335#[cfg(feature = "mmf")]
336#[derive(Copy, Clone, Eq, PartialEq)]
337pub struct Mmf {
338    ptr: *mut u8,
339}
340#[cfg(feature = "mmf")]
341pub const MMF: self::Mmf = self::Mmf {
342    ptr: 0x40001000u32 as _,
343};
344#[cfg(feature = "spi0")]
345#[derive(Copy, Clone, Eq, PartialEq)]
346pub struct Spi0 {
347    ptr: *mut u8,
348}
349#[cfg(feature = "spi0")]
350pub const SPI0: self::Spi0 = self::Spi0 {
351    ptr: 0x40072000u32 as _,
352};
353#[cfg(feature = "spi1")]
354#[derive(Copy, Clone, Eq, PartialEq)]
355pub struct Spi1 {
356    ptr: *mut u8,
357}
358#[cfg(feature = "spi1")]
359pub const SPI1: self::Spi1 = self::Spi1 {
360    ptr: 0x40072100u32 as _,
361};
362#[cfg(feature = "sci0")]
363#[derive(Copy, Clone, Eq, PartialEq)]
364pub struct Sci0 {
365    ptr: *mut u8,
366}
367#[cfg(feature = "sci0")]
368pub const SCI0: self::Sci0 = self::Sci0 {
369    ptr: 0x40070000u32 as _,
370};
371#[cfg(feature = "sci1")]
372pub const SCI1: self::Sci0 = self::Sci0 {
373    ptr: 0x40070020u32 as _,
374};
375#[cfg(feature = "sci2")]
376#[derive(Copy, Clone, Eq, PartialEq)]
377pub struct Sci2 {
378    ptr: *mut u8,
379}
380#[cfg(feature = "sci2")]
381pub const SCI2: self::Sci2 = self::Sci2 {
382    ptr: 0x40070040u32 as _,
383};
384#[cfg(feature = "sci3")]
385pub const SCI3: self::Sci2 = self::Sci2 {
386    ptr: 0x40070060u32 as _,
387};
388#[cfg(feature = "sci4")]
389pub const SCI4: self::Sci2 = self::Sci2 {
390    ptr: 0x40070080u32 as _,
391};
392#[cfg(feature = "sci9")]
393pub const SCI9: self::Sci2 = self::Sci2 {
394    ptr: 0x40070120u32 as _,
395};
396#[cfg(feature = "iic0")]
397#[derive(Copy, Clone, Eq, PartialEq)]
398pub struct Iic0 {
399    ptr: *mut u8,
400}
401#[cfg(feature = "iic0")]
402pub const IIC0: self::Iic0 = self::Iic0 {
403    ptr: 0x40053000u32 as _,
404};
405#[cfg(feature = "iic1")]
406#[derive(Copy, Clone, Eq, PartialEq)]
407pub struct Iic1 {
408    ptr: *mut u8,
409}
410#[cfg(feature = "iic1")]
411pub const IIC1: self::Iic1 = self::Iic1 {
412    ptr: 0x40053100u32 as _,
413};
414#[cfg(feature = "iic2")]
415pub const IIC2: self::Iic1 = self::Iic1 {
416    ptr: 0x40053200u32 as _,
417};
418#[cfg(feature = "can0")]
419#[derive(Copy, Clone, Eq, PartialEq)]
420pub struct Can0 {
421    ptr: *mut u8,
422}
423#[cfg(feature = "can0")]
424pub const CAN0: self::Can0 = self::Can0 {
425    ptr: 0x40050000u32 as _,
426};
427#[cfg(feature = "wdt")]
428#[derive(Copy, Clone, Eq, PartialEq)]
429pub struct Wdt {
430    ptr: *mut u8,
431}
432#[cfg(feature = "wdt")]
433pub const WDT: self::Wdt = self::Wdt {
434    ptr: 0x40044200u32 as _,
435};
436#[cfg(feature = "usbfs")]
437#[derive(Copy, Clone, Eq, PartialEq)]
438pub struct Usbfs {
439    ptr: *mut u8,
440}
441#[cfg(feature = "usbfs")]
442pub const USBFS: self::Usbfs = self::Usbfs {
443    ptr: 0x40090000u32 as _,
444};
445#[cfg(feature = "iwdt")]
446#[derive(Copy, Clone, Eq, PartialEq)]
447pub struct Iwdt {
448    ptr: *mut u8,
449}
450#[cfg(feature = "iwdt")]
451pub const IWDT: self::Iwdt = self::Iwdt {
452    ptr: 0x40044400u32 as _,
453};
454#[cfg(feature = "port0")]
455#[derive(Copy, Clone, Eq, PartialEq)]
456pub struct Port0 {
457    ptr: *mut u8,
458}
459#[cfg(feature = "port0")]
460pub const PORT0: self::Port0 = self::Port0 {
461    ptr: 0x40040000u32 as _,
462};
463#[cfg(feature = "port1")]
464#[derive(Copy, Clone, Eq, PartialEq)]
465pub struct Port1 {
466    ptr: *mut u8,
467}
468#[cfg(feature = "port1")]
469pub const PORT1: self::Port1 = self::Port1 {
470    ptr: 0x40040020u32 as _,
471};
472#[cfg(feature = "port2")]
473pub const PORT2: self::Port1 = self::Port1 {
474    ptr: 0x40040040u32 as _,
475};
476#[cfg(feature = "port3")]
477pub const PORT3: self::Port1 = self::Port1 {
478    ptr: 0x40040060u32 as _,
479};
480#[cfg(feature = "port4")]
481pub const PORT4: self::Port1 = self::Port1 {
482    ptr: 0x40040080u32 as _,
483};
484#[cfg(feature = "port5")]
485pub const PORT5: self::Port0 = self::Port0 {
486    ptr: 0x400400a0u32 as _,
487};
488#[cfg(feature = "port6")]
489pub const PORT6: self::Port0 = self::Port0 {
490    ptr: 0x400400c0u32 as _,
491};
492#[cfg(feature = "port7")]
493pub const PORT7: self::Port0 = self::Port0 {
494    ptr: 0x400400e0u32 as _,
495};
496#[cfg(feature = "port8")]
497pub const PORT8: self::Port0 = self::Port0 {
498    ptr: 0x40040100u32 as _,
499};
500#[cfg(feature = "port9")]
501pub const PORT9: self::Port0 = self::Port0 {
502    ptr: 0x40040120u32 as _,
503};
504#[cfg(feature = "pfs")]
505#[derive(Copy, Clone, Eq, PartialEq)]
506pub struct Pfs {
507    ptr: *mut u8,
508}
509#[cfg(feature = "pfs")]
510pub const PFS: self::Pfs = self::Pfs {
511    ptr: 0x40040800u32 as _,
512};
513#[cfg(feature = "pmisc")]
514#[derive(Copy, Clone, Eq, PartialEq)]
515pub struct Pmisc {
516    ptr: *mut u8,
517}
518#[cfg(feature = "pmisc")]
519pub const PMISC: self::Pmisc = self::Pmisc {
520    ptr: 0x40040d00u32 as _,
521};
522#[cfg(feature = "elc")]
523#[derive(Copy, Clone, Eq, PartialEq)]
524pub struct Elc {
525    ptr: *mut u8,
526}
527#[cfg(feature = "elc")]
528pub const ELC: self::Elc = self::Elc {
529    ptr: 0x40041000u32 as _,
530};
531#[cfg(feature = "doc")]
532#[derive(Copy, Clone, Eq, PartialEq)]
533pub struct Doc {
534    ptr: *mut u8,
535}
536#[cfg(feature = "doc")]
537pub const DOC: self::Doc = self::Doc {
538    ptr: 0x40054100u32 as _,
539};
540#[cfg(feature = "crc")]
541#[derive(Copy, Clone, Eq, PartialEq)]
542pub struct Crc {
543    ptr: *mut u8,
544}
545#[cfg(feature = "crc")]
546pub const CRC: self::Crc = self::Crc {
547    ptr: 0x40074000u32 as _,
548};
549#[cfg(feature = "cac")]
550#[derive(Copy, Clone, Eq, PartialEq)]
551pub struct Cac {
552    ptr: *mut u8,
553}
554#[cfg(feature = "cac")]
555pub const CAC: self::Cac = self::Cac {
556    ptr: 0x40044600u32 as _,
557};
558#[cfg(feature = "dac8")]
559#[derive(Copy, Clone, Eq, PartialEq)]
560pub struct Dac8 {
561    ptr: *mut u8,
562}
563#[cfg(feature = "dac8")]
564pub const DAC8: self::Dac8 = self::Dac8 {
565    ptr: 0x4009e000u32 as _,
566};
567#[cfg(feature = "dac12")]
568#[derive(Copy, Clone, Eq, PartialEq)]
569pub struct Dac12 {
570    ptr: *mut u8,
571}
572#[cfg(feature = "dac12")]
573pub const DAC12: self::Dac12 = self::Dac12 {
574    ptr: 0x4005e000u32 as _,
575};
576#[cfg(feature = "ctsu")]
577#[derive(Copy, Clone, Eq, PartialEq)]
578pub struct Ctsu {
579    ptr: *mut u8,
580}
581#[cfg(feature = "ctsu")]
582pub const CTSU: self::Ctsu = self::Ctsu {
583    ptr: 0x40081000u32 as _,
584};
585#[cfg(feature = "adc140")]
586#[derive(Copy, Clone, Eq, PartialEq)]
587pub struct Adc140 {
588    ptr: *mut u8,
589}
590#[cfg(feature = "adc140")]
591pub const ADC140: self::Adc140 = self::Adc140 {
592    ptr: 0x4005c000u32 as _,
593};
594#[cfg(feature = "acmplp")]
595#[derive(Copy, Clone, Eq, PartialEq)]
596pub struct Acmplp {
597    ptr: *mut u8,
598}
599#[cfg(feature = "acmplp")]
600pub const ACMPLP: self::Acmplp = self::Acmplp {
601    ptr: 0x40085e00u32 as _,
602};
603#[cfg(feature = "tsn")]
604#[derive(Copy, Clone, Eq, PartialEq)]
605pub struct Tsn {
606    ptr: *mut u8,
607}
608#[cfg(feature = "tsn")]
609pub const TSN: self::Tsn = self::Tsn {
610    ptr: 0x407ec000u32 as _,
611};
612#[cfg(feature = "slcdc")]
613#[derive(Copy, Clone, Eq, PartialEq)]
614pub struct Slcdc {
615    ptr: *mut u8,
616}
617#[cfg(feature = "slcdc")]
618pub const SLCDC: self::Slcdc = self::Slcdc {
619    ptr: 0x40082000u32 as _,
620};
621#[cfg(feature = "opamp")]
622#[derive(Copy, Clone, Eq, PartialEq)]
623pub struct Opamp {
624    ptr: *mut u8,
625}
626#[cfg(feature = "opamp")]
627pub const OPAMP: self::Opamp = self::Opamp {
628    ptr: 0x40086000u32 as _,
629};
630#[cfg(feature = "dtc")]
631#[derive(Copy, Clone, Eq, PartialEq)]
632pub struct Dtc {
633    ptr: *mut u8,
634}
635#[cfg(feature = "dtc")]
636pub const DTC: self::Dtc = self::Dtc {
637    ptr: 0x40005400u32 as _,
638};
639#[cfg(feature = "kint")]
640#[derive(Copy, Clone, Eq, PartialEq)]
641pub struct Kint {
642    ptr: *mut u8,
643}
644#[cfg(feature = "kint")]
645pub const KINT: self::Kint = self::Kint {
646    ptr: 0x40080000u32 as _,
647};
648
649pub use cortex_m::peripheral::Peripherals as CorePeripherals;
650pub use cortex_m::peripheral::{CBP, CPUID, DCB, DWT, FPB, FPU, ITM, MPU, NVIC, SCB, SYST, TPIU};
651#[doc = "Number available in the NVIC for configuring priority"]
652pub const NVIC_PRIO_BITS: u8 = 4;
653#[doc(hidden)]
654pub union Vector {
655    _handler: unsafe extern "C" fn(),
656    _reserved: u32,
657}
658#[cfg(feature = "rt")]
659pub use self::Interrupt as interrupt;
660#[cfg(feature = "rt")]
661pub use cortex_m_rt::interrupt;
662#[cfg(feature = "rt")]
663pub mod interrupt_handlers {
664    unsafe extern "C" {
665        pub fn IEL0();
666        pub fn IEL1();
667        pub fn IEL2();
668        pub fn IEL3();
669        pub fn IEL4();
670        pub fn IEL5();
671        pub fn IEL6();
672        pub fn IEL7();
673        pub fn IEL8();
674        pub fn IEL9();
675        pub fn IEL10();
676        pub fn IEL11();
677        pub fn IEL12();
678        pub fn IEL13();
679        pub fn IEL14();
680        pub fn IEL15();
681        pub fn IEL16();
682        pub fn IEL17();
683        pub fn IEL18();
684        pub fn IEL19();
685        pub fn IEL20();
686        pub fn IEL21();
687        pub fn IEL22();
688        pub fn IEL23();
689        pub fn IEL24();
690        pub fn IEL25();
691        pub fn IEL26();
692        pub fn IEL27();
693        pub fn IEL28();
694        pub fn IEL29();
695        pub fn IEL30();
696        pub fn IEL31();
697    }
698}
699#[cfg(feature = "rt")]
700#[doc(hidden)]
701#[unsafe(link_section = ".vector_table.interrupts")]
702#[unsafe(no_mangle)]
703pub static __INTERRUPTS: [Vector; 32] = [
704    Vector {
705        _handler: interrupt_handlers::IEL0,
706    },
707    Vector {
708        _handler: interrupt_handlers::IEL1,
709    },
710    Vector {
711        _handler: interrupt_handlers::IEL2,
712    },
713    Vector {
714        _handler: interrupt_handlers::IEL3,
715    },
716    Vector {
717        _handler: interrupt_handlers::IEL4,
718    },
719    Vector {
720        _handler: interrupt_handlers::IEL5,
721    },
722    Vector {
723        _handler: interrupt_handlers::IEL6,
724    },
725    Vector {
726        _handler: interrupt_handlers::IEL7,
727    },
728    Vector {
729        _handler: interrupt_handlers::IEL8,
730    },
731    Vector {
732        _handler: interrupt_handlers::IEL9,
733    },
734    Vector {
735        _handler: interrupt_handlers::IEL10,
736    },
737    Vector {
738        _handler: interrupt_handlers::IEL11,
739    },
740    Vector {
741        _handler: interrupt_handlers::IEL12,
742    },
743    Vector {
744        _handler: interrupt_handlers::IEL13,
745    },
746    Vector {
747        _handler: interrupt_handlers::IEL14,
748    },
749    Vector {
750        _handler: interrupt_handlers::IEL15,
751    },
752    Vector {
753        _handler: interrupt_handlers::IEL16,
754    },
755    Vector {
756        _handler: interrupt_handlers::IEL17,
757    },
758    Vector {
759        _handler: interrupt_handlers::IEL18,
760    },
761    Vector {
762        _handler: interrupt_handlers::IEL19,
763    },
764    Vector {
765        _handler: interrupt_handlers::IEL20,
766    },
767    Vector {
768        _handler: interrupt_handlers::IEL21,
769    },
770    Vector {
771        _handler: interrupt_handlers::IEL22,
772    },
773    Vector {
774        _handler: interrupt_handlers::IEL23,
775    },
776    Vector {
777        _handler: interrupt_handlers::IEL24,
778    },
779    Vector {
780        _handler: interrupt_handlers::IEL25,
781    },
782    Vector {
783        _handler: interrupt_handlers::IEL26,
784    },
785    Vector {
786        _handler: interrupt_handlers::IEL27,
787    },
788    Vector {
789        _handler: interrupt_handlers::IEL28,
790    },
791    Vector {
792        _handler: interrupt_handlers::IEL29,
793    },
794    Vector {
795        _handler: interrupt_handlers::IEL30,
796    },
797    Vector {
798        _handler: interrupt_handlers::IEL31,
799    },
800];
801#[doc = "Enumeration of all the interrupts."]
802#[derive(Copy, Clone, Debug, PartialEq, Eq)]
803#[repr(u16)]
804pub enum Interrupt {
805    #[doc = "ICU Interrupt 0"]
806    IEL0 = 0,
807
808    #[doc = "ICU Interrupt 1"]
809    IEL1 = 1,
810
811    #[doc = "ICU Interrupt 2"]
812    IEL2 = 2,
813
814    #[doc = "ICU Interrupt 3"]
815    IEL3 = 3,
816
817    #[doc = "ICU Interrupt 4"]
818    IEL4 = 4,
819
820    #[doc = "ICU Interrupt 5"]
821    IEL5 = 5,
822
823    #[doc = "ICU Interrupt 6"]
824    IEL6 = 6,
825
826    #[doc = "ICU Interrupt 7"]
827    IEL7 = 7,
828
829    #[doc = "ICU Interrupt 8"]
830    IEL8 = 8,
831
832    #[doc = "ICU Interrupt 9"]
833    IEL9 = 9,
834
835    #[doc = "ICU Interrupt 10"]
836    IEL10 = 10,
837
838    #[doc = "ICU Interrupt 11"]
839    IEL11 = 11,
840
841    #[doc = "ICU Interrupt 12"]
842    IEL12 = 12,
843
844    #[doc = "ICU Interrupt 13"]
845    IEL13 = 13,
846
847    #[doc = "ICU Interrupt 14"]
848    IEL14 = 14,
849
850    #[doc = "ICU Interrupt 15"]
851    IEL15 = 15,
852
853    #[doc = "ICU Interrupt 16"]
854    IEL16 = 16,
855
856    #[doc = "ICU Interrupt 17"]
857    IEL17 = 17,
858
859    #[doc = "ICU Interrupt 18"]
860    IEL18 = 18,
861
862    #[doc = "ICU Interrupt 19"]
863    IEL19 = 19,
864
865    #[doc = "ICU Interrupt 20"]
866    IEL20 = 20,
867
868    #[doc = "ICU Interrupt 21"]
869    IEL21 = 21,
870
871    #[doc = "ICU Interrupt 22"]
872    IEL22 = 22,
873
874    #[doc = "ICU Interrupt 23"]
875    IEL23 = 23,
876
877    #[doc = "ICU Interrupt 24"]
878    IEL24 = 24,
879
880    #[doc = "ICU Interrupt 25"]
881    IEL25 = 25,
882
883    #[doc = "ICU Interrupt 26"]
884    IEL26 = 26,
885
886    #[doc = "ICU Interrupt 27"]
887    IEL27 = 27,
888
889    #[doc = "ICU Interrupt 28"]
890    IEL28 = 28,
891
892    #[doc = "ICU Interrupt 29"]
893    IEL29 = 29,
894
895    #[doc = "ICU Interrupt 30"]
896    IEL30 = 30,
897
898    #[doc = "ICU Interrupt 31"]
899    IEL31 = 31,
900}
901unsafe impl cortex_m::interrupt::InterruptNumber for Interrupt {
902    #[inline(always)]
903    fn number(self) -> u16 {
904        self as u16
905    }
906}
907#[allow(non_snake_case)]
908/// Required for compatibility with RTIC and other frameworks
909pub struct Peripherals {
910    #[cfg(feature = "poeg")]
911    pub POEG: self::Poeg,
912    #[cfg(feature = "gpt320")]
913    pub GPT320: self::Gpt320,
914    #[cfg(feature = "gpt321")]
915    pub GPT321: self::Gpt320,
916    #[cfg(feature = "gpt322")]
917    pub GPT322: self::Gpt320,
918    #[cfg(feature = "gpt323")]
919    pub GPT323: self::Gpt320,
920    #[cfg(feature = "gpt164")]
921    pub GPT164: self::Gpt164,
922    #[cfg(feature = "gpt165")]
923    pub GPT165: self::Gpt164,
924    #[cfg(feature = "gpt166")]
925    pub GPT166: self::Gpt164,
926    #[cfg(feature = "gpt167")]
927    pub GPT167: self::Gpt164,
928    #[cfg(feature = "gpt168")]
929    pub GPT168: self::Gpt164,
930    #[cfg(feature = "gpt169")]
931    pub GPT169: self::Gpt164,
932    #[cfg(feature = "gpt_ops")]
933    pub GPT_OPS: self::GptOps,
934    #[cfg(feature = "agt0")]
935    pub AGT0: self::Agt0,
936    #[cfg(feature = "agt1")]
937    pub AGT1: self::Agt0,
938    #[cfg(feature = "rtc")]
939    pub RTC: self::Rtc,
940    #[cfg(feature = "system")]
941    pub SYSTEM: self::System,
942    #[cfg(feature = "mstp")]
943    pub MSTP: self::Mstp,
944    #[cfg(feature = "fcache")]
945    pub FCACHE: self::Fcache,
946    #[cfg(feature = "icu")]
947    pub ICU: self::Icu,
948    #[cfg(feature = "dmac0")]
949    pub DMAC0: self::Dmac0,
950    #[cfg(feature = "dmac1")]
951    pub DMAC1: self::Dmac0,
952    #[cfg(feature = "dmac2")]
953    pub DMAC2: self::Dmac0,
954    #[cfg(feature = "dmac3")]
955    pub DMAC3: self::Dmac0,
956    #[cfg(feature = "dma")]
957    pub DMA: self::Dma,
958    #[cfg(feature = "dbg")]
959    pub DBG: self::Dbg,
960    #[cfg(feature = "bus")]
961    pub BUS: self::Bus,
962    #[cfg(feature = "sram")]
963    pub SRAM: self::Sram,
964    #[cfg(feature = "mmpu")]
965    pub MMPU: self::Mmpu,
966    #[cfg(feature = "smpu")]
967    pub SMPU: self::Smpu,
968    #[cfg(feature = "spmon")]
969    pub SPMON: self::Spmon,
970    #[cfg(feature = "mmf")]
971    pub MMF: self::Mmf,
972    #[cfg(feature = "spi0")]
973    pub SPI0: self::Spi0,
974    #[cfg(feature = "spi1")]
975    pub SPI1: self::Spi1,
976    #[cfg(feature = "sci0")]
977    pub SCI0: self::Sci0,
978    #[cfg(feature = "sci1")]
979    pub SCI1: self::Sci0,
980    #[cfg(feature = "sci2")]
981    pub SCI2: self::Sci2,
982    #[cfg(feature = "sci3")]
983    pub SCI3: self::Sci2,
984    #[cfg(feature = "sci4")]
985    pub SCI4: self::Sci2,
986    #[cfg(feature = "sci9")]
987    pub SCI9: self::Sci2,
988    #[cfg(feature = "iic0")]
989    pub IIC0: self::Iic0,
990    #[cfg(feature = "iic1")]
991    pub IIC1: self::Iic1,
992    #[cfg(feature = "iic2")]
993    pub IIC2: self::Iic1,
994    #[cfg(feature = "can0")]
995    pub CAN0: self::Can0,
996    #[cfg(feature = "wdt")]
997    pub WDT: self::Wdt,
998    #[cfg(feature = "usbfs")]
999    pub USBFS: self::Usbfs,
1000    #[cfg(feature = "iwdt")]
1001    pub IWDT: self::Iwdt,
1002    #[cfg(feature = "port0")]
1003    pub PORT0: self::Port0,
1004    #[cfg(feature = "port1")]
1005    pub PORT1: self::Port1,
1006    #[cfg(feature = "port2")]
1007    pub PORT2: self::Port1,
1008    #[cfg(feature = "port3")]
1009    pub PORT3: self::Port1,
1010    #[cfg(feature = "port4")]
1011    pub PORT4: self::Port1,
1012    #[cfg(feature = "port5")]
1013    pub PORT5: self::Port0,
1014    #[cfg(feature = "port6")]
1015    pub PORT6: self::Port0,
1016    #[cfg(feature = "port7")]
1017    pub PORT7: self::Port0,
1018    #[cfg(feature = "port8")]
1019    pub PORT8: self::Port0,
1020    #[cfg(feature = "port9")]
1021    pub PORT9: self::Port0,
1022    #[cfg(feature = "pfs")]
1023    pub PFS: self::Pfs,
1024    #[cfg(feature = "pmisc")]
1025    pub PMISC: self::Pmisc,
1026    #[cfg(feature = "elc")]
1027    pub ELC: self::Elc,
1028    #[cfg(feature = "doc")]
1029    pub DOC: self::Doc,
1030    #[cfg(feature = "crc")]
1031    pub CRC: self::Crc,
1032    #[cfg(feature = "cac")]
1033    pub CAC: self::Cac,
1034    #[cfg(feature = "dac8")]
1035    pub DAC8: self::Dac8,
1036    #[cfg(feature = "dac12")]
1037    pub DAC12: self::Dac12,
1038    #[cfg(feature = "ctsu")]
1039    pub CTSU: self::Ctsu,
1040    #[cfg(feature = "adc140")]
1041    pub ADC140: self::Adc140,
1042    #[cfg(feature = "acmplp")]
1043    pub ACMPLP: self::Acmplp,
1044    #[cfg(feature = "tsn")]
1045    pub TSN: self::Tsn,
1046    #[cfg(feature = "slcdc")]
1047    pub SLCDC: self::Slcdc,
1048    #[cfg(feature = "opamp")]
1049    pub OPAMP: self::Opamp,
1050    #[cfg(feature = "dtc")]
1051    pub DTC: self::Dtc,
1052    #[cfg(feature = "kint")]
1053    pub KINT: self::Kint,
1054}
1055
1056impl Peripherals {
1057    /// Returns Peripheral struct multiple times
1058    /// Required for compatibility with RTIC and other frameworks
1059    #[inline]
1060    pub fn take() -> Option<Self> {
1061        Some(Self::steal())
1062    }
1063
1064    /// Returns Peripheral struct multiple times
1065    /// Required for compatibility with RTIC and other frameworks
1066    #[inline]
1067    pub fn steal() -> Self {
1068        Peripherals {
1069            #[cfg(feature = "poeg")]
1070            POEG: crate::POEG,
1071            #[cfg(feature = "gpt320")]
1072            GPT320: crate::GPT320,
1073            #[cfg(feature = "gpt321")]
1074            GPT321: crate::GPT321,
1075            #[cfg(feature = "gpt322")]
1076            GPT322: crate::GPT322,
1077            #[cfg(feature = "gpt323")]
1078            GPT323: crate::GPT323,
1079            #[cfg(feature = "gpt164")]
1080            GPT164: crate::GPT164,
1081            #[cfg(feature = "gpt165")]
1082            GPT165: crate::GPT165,
1083            #[cfg(feature = "gpt166")]
1084            GPT166: crate::GPT166,
1085            #[cfg(feature = "gpt167")]
1086            GPT167: crate::GPT167,
1087            #[cfg(feature = "gpt168")]
1088            GPT168: crate::GPT168,
1089            #[cfg(feature = "gpt169")]
1090            GPT169: crate::GPT169,
1091            #[cfg(feature = "gpt_ops")]
1092            GPT_OPS: crate::GPT_OPS,
1093            #[cfg(feature = "agt0")]
1094            AGT0: crate::AGT0,
1095            #[cfg(feature = "agt1")]
1096            AGT1: crate::AGT1,
1097            #[cfg(feature = "rtc")]
1098            RTC: crate::RTC,
1099            #[cfg(feature = "system")]
1100            SYSTEM: crate::SYSTEM,
1101            #[cfg(feature = "mstp")]
1102            MSTP: crate::MSTP,
1103            #[cfg(feature = "fcache")]
1104            FCACHE: crate::FCACHE,
1105            #[cfg(feature = "icu")]
1106            ICU: crate::ICU,
1107            #[cfg(feature = "dmac0")]
1108            DMAC0: crate::DMAC0,
1109            #[cfg(feature = "dmac1")]
1110            DMAC1: crate::DMAC1,
1111            #[cfg(feature = "dmac2")]
1112            DMAC2: crate::DMAC2,
1113            #[cfg(feature = "dmac3")]
1114            DMAC3: crate::DMAC3,
1115            #[cfg(feature = "dma")]
1116            DMA: crate::DMA,
1117            #[cfg(feature = "dbg")]
1118            DBG: crate::DBG,
1119            #[cfg(feature = "bus")]
1120            BUS: crate::BUS,
1121            #[cfg(feature = "sram")]
1122            SRAM: crate::SRAM,
1123            #[cfg(feature = "mmpu")]
1124            MMPU: crate::MMPU,
1125            #[cfg(feature = "smpu")]
1126            SMPU: crate::SMPU,
1127            #[cfg(feature = "spmon")]
1128            SPMON: crate::SPMON,
1129            #[cfg(feature = "mmf")]
1130            MMF: crate::MMF,
1131            #[cfg(feature = "spi0")]
1132            SPI0: crate::SPI0,
1133            #[cfg(feature = "spi1")]
1134            SPI1: crate::SPI1,
1135            #[cfg(feature = "sci0")]
1136            SCI0: crate::SCI0,
1137            #[cfg(feature = "sci1")]
1138            SCI1: crate::SCI1,
1139            #[cfg(feature = "sci2")]
1140            SCI2: crate::SCI2,
1141            #[cfg(feature = "sci3")]
1142            SCI3: crate::SCI3,
1143            #[cfg(feature = "sci4")]
1144            SCI4: crate::SCI4,
1145            #[cfg(feature = "sci9")]
1146            SCI9: crate::SCI9,
1147            #[cfg(feature = "iic0")]
1148            IIC0: crate::IIC0,
1149            #[cfg(feature = "iic1")]
1150            IIC1: crate::IIC1,
1151            #[cfg(feature = "iic2")]
1152            IIC2: crate::IIC2,
1153            #[cfg(feature = "can0")]
1154            CAN0: crate::CAN0,
1155            #[cfg(feature = "wdt")]
1156            WDT: crate::WDT,
1157            #[cfg(feature = "usbfs")]
1158            USBFS: crate::USBFS,
1159            #[cfg(feature = "iwdt")]
1160            IWDT: crate::IWDT,
1161            #[cfg(feature = "port0")]
1162            PORT0: crate::PORT0,
1163            #[cfg(feature = "port1")]
1164            PORT1: crate::PORT1,
1165            #[cfg(feature = "port2")]
1166            PORT2: crate::PORT2,
1167            #[cfg(feature = "port3")]
1168            PORT3: crate::PORT3,
1169            #[cfg(feature = "port4")]
1170            PORT4: crate::PORT4,
1171            #[cfg(feature = "port5")]
1172            PORT5: crate::PORT5,
1173            #[cfg(feature = "port6")]
1174            PORT6: crate::PORT6,
1175            #[cfg(feature = "port7")]
1176            PORT7: crate::PORT7,
1177            #[cfg(feature = "port8")]
1178            PORT8: crate::PORT8,
1179            #[cfg(feature = "port9")]
1180            PORT9: crate::PORT9,
1181            #[cfg(feature = "pfs")]
1182            PFS: crate::PFS,
1183            #[cfg(feature = "pmisc")]
1184            PMISC: crate::PMISC,
1185            #[cfg(feature = "elc")]
1186            ELC: crate::ELC,
1187            #[cfg(feature = "doc")]
1188            DOC: crate::DOC,
1189            #[cfg(feature = "crc")]
1190            CRC: crate::CRC,
1191            #[cfg(feature = "cac")]
1192            CAC: crate::CAC,
1193            #[cfg(feature = "dac8")]
1194            DAC8: crate::DAC8,
1195            #[cfg(feature = "dac12")]
1196            DAC12: crate::DAC12,
1197            #[cfg(feature = "ctsu")]
1198            CTSU: crate::CTSU,
1199            #[cfg(feature = "adc140")]
1200            ADC140: crate::ADC140,
1201            #[cfg(feature = "acmplp")]
1202            ACMPLP: crate::ACMPLP,
1203            #[cfg(feature = "tsn")]
1204            TSN: crate::TSN,
1205            #[cfg(feature = "slcdc")]
1206            SLCDC: crate::SLCDC,
1207            #[cfg(feature = "opamp")]
1208            OPAMP: crate::OPAMP,
1209            #[cfg(feature = "dtc")]
1210            DTC: crate::DTC,
1211            #[cfg(feature = "kint")]
1212            KINT: crate::KINT,
1213        }
1214    }
1215}