1#![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)]
908pub 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 #[inline]
1060 pub fn take() -> Option<Self> {
1061 Some(Self::steal())
1062 }
1063
1064 #[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}