1#![cfg_attr(not(feature = "tracing"), no_std)]
20#![allow(non_camel_case_types)]
21#![doc = "Arm Cortex-M23 based Microcontroller RA2E1 device"]
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 = "adc120")]
31pub mod adc120;
32#[cfg(feature = "agt0")]
33pub mod agt0;
34#[cfg(feature = "bus")]
35pub mod bus;
36#[cfg(feature = "cac")]
37pub mod cac;
38#[cfg(feature = "crc")]
39pub mod crc;
40#[cfg(feature = "dbg")]
41pub mod dbg;
42#[cfg(feature = "doc")]
43pub mod doc;
44#[cfg(feature = "dtc")]
45pub mod dtc;
46#[cfg(feature = "elc")]
47pub mod elc;
48#[cfg(feature = "flcn")]
49pub mod flcn;
50#[cfg(feature = "gpt164")]
51pub mod gpt164;
52#[cfg(feature = "gpt320")]
53pub mod gpt320;
54#[cfg(feature = "gpt_ops")]
55pub mod gpt_ops;
56#[cfg(feature = "icu")]
57pub mod icu;
58#[cfg(feature = "iic0")]
59pub mod iic0;
60#[cfg(feature = "iic0wu")]
61pub mod iic0wu;
62#[cfg(feature = "iwdt")]
63pub mod iwdt;
64#[cfg(feature = "kint")]
65pub mod kint;
66#[cfg(feature = "mstp")]
67pub mod mstp;
68#[cfg(feature = "pfs")]
69pub mod pfs;
70#[cfg(feature = "poeg")]
71pub mod poeg;
72#[cfg(feature = "port0")]
73pub mod port0;
74#[cfg(feature = "port1")]
75pub mod port1;
76#[cfg(feature = "rmpu")]
77pub mod rmpu;
78#[cfg(feature = "rtc")]
79pub mod rtc;
80#[cfg(feature = "sci0")]
81pub mod sci0;
82#[cfg(feature = "sci1")]
83pub mod sci1;
84#[cfg(feature = "spi0")]
85pub mod spi0;
86#[cfg(feature = "sram")]
87pub mod sram;
88#[cfg(feature = "sysc")]
89pub mod sysc;
90#[cfg(feature = "wdt")]
91pub mod wdt;
92
93#[cfg(feature = "rmpu")]
94#[derive(Copy, Clone, Eq, PartialEq)]
95pub struct Rmpu {
96 ptr: *mut u8,
97}
98#[cfg(feature = "rmpu")]
99pub const RMPU: self::Rmpu = self::Rmpu {
100 ptr: 0x40000000u32 as _,
101};
102#[cfg(feature = "sram")]
103#[derive(Copy, Clone, Eq, PartialEq)]
104pub struct Sram {
105 ptr: *mut u8,
106}
107#[cfg(feature = "sram")]
108pub const SRAM: self::Sram = self::Sram {
109 ptr: 0x40002000u32 as _,
110};
111#[cfg(feature = "bus")]
112#[derive(Copy, Clone, Eq, PartialEq)]
113pub struct Bus {
114 ptr: *mut u8,
115}
116#[cfg(feature = "bus")]
117pub const BUS: self::Bus = self::Bus {
118 ptr: 0x40003000u32 as _,
119};
120#[cfg(feature = "dtc")]
121#[derive(Copy, Clone, Eq, PartialEq)]
122pub struct Dtc {
123 ptr: *mut u8,
124}
125#[cfg(feature = "dtc")]
126pub const DTC: self::Dtc = self::Dtc {
127 ptr: 0x40005400u32 as _,
128};
129#[cfg(feature = "icu")]
130#[derive(Copy, Clone, Eq, PartialEq)]
131pub struct Icu {
132 ptr: *mut u8,
133}
134#[cfg(feature = "icu")]
135pub const ICU: self::Icu = self::Icu {
136 ptr: 0x40006000u32 as _,
137};
138#[cfg(feature = "dbg")]
139#[derive(Copy, Clone, Eq, PartialEq)]
140pub struct Dbg {
141 ptr: *mut u8,
142}
143#[cfg(feature = "dbg")]
144pub const DBG: self::Dbg = self::Dbg {
145 ptr: 0x4001b000u32 as _,
146};
147#[cfg(feature = "sysc")]
148#[derive(Copy, Clone, Eq, PartialEq)]
149pub struct Sysc {
150 ptr: *mut u8,
151}
152#[cfg(feature = "sysc")]
153pub const SYSC: self::Sysc = self::Sysc {
154 ptr: 0x4001e000u32 as _,
155};
156#[cfg(feature = "port0")]
157#[derive(Copy, Clone, Eq, PartialEq)]
158pub struct Port0 {
159 ptr: *mut u8,
160}
161#[cfg(feature = "port0")]
162pub const PORT0: self::Port0 = self::Port0 {
163 ptr: 0x40040000u32 as _,
164};
165#[cfg(feature = "port1")]
166#[derive(Copy, Clone, Eq, PartialEq)]
167pub struct Port1 {
168 ptr: *mut u8,
169}
170#[cfg(feature = "port1")]
171pub const PORT1: self::Port1 = self::Port1 {
172 ptr: 0x40040020u32 as _,
173};
174#[cfg(feature = "port2")]
175pub const PORT2: self::Port1 = self::Port1 {
176 ptr: 0x40040040u32 as _,
177};
178#[cfg(feature = "port3")]
179pub const PORT3: self::Port0 = self::Port0 {
180 ptr: 0x40040060u32 as _,
181};
182#[cfg(feature = "port4")]
183pub const PORT4: self::Port0 = self::Port0 {
184 ptr: 0x40040080u32 as _,
185};
186#[cfg(feature = "port5")]
187pub const PORT5: self::Port0 = self::Port0 {
188 ptr: 0x400400a0u32 as _,
189};
190#[cfg(feature = "port9")]
191pub const PORT9: self::Port0 = self::Port0 {
192 ptr: 0x40040120u32 as _,
193};
194#[cfg(feature = "pfs")]
195#[derive(Copy, Clone, Eq, PartialEq)]
196pub struct Pfs {
197 ptr: *mut u8,
198}
199#[cfg(feature = "pfs")]
200pub const PFS: self::Pfs = self::Pfs {
201 ptr: 0x40040800u32 as _,
202};
203#[cfg(feature = "elc")]
204#[derive(Copy, Clone, Eq, PartialEq)]
205pub struct Elc {
206 ptr: *mut u8,
207}
208#[cfg(feature = "elc")]
209pub const ELC: self::Elc = self::Elc {
210 ptr: 0x40041000u32 as _,
211};
212#[cfg(feature = "poeg")]
213#[derive(Copy, Clone, Eq, PartialEq)]
214pub struct Poeg {
215 ptr: *mut u8,
216}
217#[cfg(feature = "poeg")]
218pub const POEG: self::Poeg = self::Poeg {
219 ptr: 0x40042000u32 as _,
220};
221#[cfg(feature = "rtc")]
222#[derive(Copy, Clone, Eq, PartialEq)]
223pub struct Rtc {
224 ptr: *mut u8,
225}
226#[cfg(feature = "rtc")]
227pub const RTC: self::Rtc = self::Rtc {
228 ptr: 0x40044000u32 as _,
229};
230#[cfg(feature = "wdt")]
231#[derive(Copy, Clone, Eq, PartialEq)]
232pub struct Wdt {
233 ptr: *mut u8,
234}
235#[cfg(feature = "wdt")]
236pub const WDT: self::Wdt = self::Wdt {
237 ptr: 0x40044200u32 as _,
238};
239#[cfg(feature = "iwdt")]
240#[derive(Copy, Clone, Eq, PartialEq)]
241pub struct Iwdt {
242 ptr: *mut u8,
243}
244#[cfg(feature = "iwdt")]
245pub const IWDT: self::Iwdt = self::Iwdt {
246 ptr: 0x40044400u32 as _,
247};
248#[cfg(feature = "cac")]
249#[derive(Copy, Clone, Eq, PartialEq)]
250pub struct Cac {
251 ptr: *mut u8,
252}
253#[cfg(feature = "cac")]
254pub const CAC: self::Cac = self::Cac {
255 ptr: 0x40044600u32 as _,
256};
257#[cfg(feature = "mstp")]
258#[derive(Copy, Clone, Eq, PartialEq)]
259pub struct Mstp {
260 ptr: *mut u8,
261}
262#[cfg(feature = "mstp")]
263pub const MSTP: self::Mstp = self::Mstp {
264 ptr: 0x40047000u32 as _,
265};
266#[cfg(feature = "iic0")]
267#[derive(Copy, Clone, Eq, PartialEq)]
268pub struct Iic0 {
269 ptr: *mut u8,
270}
271#[cfg(feature = "iic0")]
272pub const IIC0: self::Iic0 = self::Iic0 {
273 ptr: 0x40053000u32 as _,
274};
275#[cfg(feature = "iic0wu")]
276#[derive(Copy, Clone, Eq, PartialEq)]
277pub struct Iic0Wu {
278 ptr: *mut u8,
279}
280#[cfg(feature = "iic0wu")]
281pub const IIC0WU: self::Iic0Wu = self::Iic0Wu {
282 ptr: 0x40053014u32 as _,
283};
284#[cfg(feature = "doc")]
285#[derive(Copy, Clone, Eq, PartialEq)]
286pub struct Doc {
287 ptr: *mut u8,
288}
289#[cfg(feature = "doc")]
290pub const DOC: self::Doc = self::Doc {
291 ptr: 0x40054100u32 as _,
292};
293#[cfg(feature = "adc120")]
294#[derive(Copy, Clone, Eq, PartialEq)]
295pub struct Adc120 {
296 ptr: *mut u8,
297}
298#[cfg(feature = "adc120")]
299pub const ADC120: self::Adc120 = self::Adc120 {
300 ptr: 0x4005c000u32 as _,
301};
302#[cfg(feature = "sci0")]
303#[derive(Copy, Clone, Eq, PartialEq)]
304pub struct Sci0 {
305 ptr: *mut u8,
306}
307#[cfg(feature = "sci0")]
308pub const SCI0: self::Sci0 = self::Sci0 {
309 ptr: 0x40070000u32 as _,
310};
311#[cfg(feature = "sci1")]
312#[derive(Copy, Clone, Eq, PartialEq)]
313pub struct Sci1 {
314 ptr: *mut u8,
315}
316#[cfg(feature = "sci1")]
317pub const SCI1: self::Sci1 = self::Sci1 {
318 ptr: 0x40070020u32 as _,
319};
320#[cfg(feature = "sci2")]
321pub const SCI2: self::Sci1 = self::Sci1 {
322 ptr: 0x40070040u32 as _,
323};
324#[cfg(feature = "sci9")]
325pub const SCI9: self::Sci1 = self::Sci1 {
326 ptr: 0x40070120u32 as _,
327};
328#[cfg(feature = "spi0")]
329#[derive(Copy, Clone, Eq, PartialEq)]
330pub struct Spi0 {
331 ptr: *mut u8,
332}
333#[cfg(feature = "spi0")]
334pub const SPI0: self::Spi0 = self::Spi0 {
335 ptr: 0x40072000u32 as _,
336};
337#[cfg(feature = "crc")]
338#[derive(Copy, Clone, Eq, PartialEq)]
339pub struct Crc {
340 ptr: *mut u8,
341}
342#[cfg(feature = "crc")]
343pub const CRC: self::Crc = self::Crc {
344 ptr: 0x40074000u32 as _,
345};
346#[cfg(feature = "gpt320")]
347#[derive(Copy, Clone, Eq, PartialEq)]
348pub struct Gpt320 {
349 ptr: *mut u8,
350}
351#[cfg(feature = "gpt320")]
352pub const GPT320: self::Gpt320 = self::Gpt320 {
353 ptr: 0x40078000u32 as _,
354};
355#[cfg(feature = "gpt164")]
356#[derive(Copy, Clone, Eq, PartialEq)]
357pub struct Gpt164 {
358 ptr: *mut u8,
359}
360#[cfg(feature = "gpt164")]
361pub const GPT164: self::Gpt164 = self::Gpt164 {
362 ptr: 0x40078400u32 as _,
363};
364#[cfg(feature = "gpt165")]
365pub const GPT165: self::Gpt164 = self::Gpt164 {
366 ptr: 0x40078500u32 as _,
367};
368#[cfg(feature = "gpt166")]
369pub const GPT166: self::Gpt164 = self::Gpt164 {
370 ptr: 0x40078600u32 as _,
371};
372#[cfg(feature = "gpt167")]
373pub const GPT167: self::Gpt164 = self::Gpt164 {
374 ptr: 0x40078700u32 as _,
375};
376#[cfg(feature = "gpt168")]
377pub const GPT168: self::Gpt164 = self::Gpt164 {
378 ptr: 0x40078800u32 as _,
379};
380#[cfg(feature = "gpt169")]
381pub const GPT169: self::Gpt164 = self::Gpt164 {
382 ptr: 0x40078900u32 as _,
383};
384#[cfg(feature = "gpt_ops")]
385#[derive(Copy, Clone, Eq, PartialEq)]
386pub struct GptOps {
387 ptr: *mut u8,
388}
389#[cfg(feature = "gpt_ops")]
390pub const GPT_OPS: self::GptOps = self::GptOps {
391 ptr: 0x40078ff0u32 as _,
392};
393#[cfg(feature = "kint")]
394#[derive(Copy, Clone, Eq, PartialEq)]
395pub struct Kint {
396 ptr: *mut u8,
397}
398#[cfg(feature = "kint")]
399pub const KINT: self::Kint = self::Kint {
400 ptr: 0x40080000u32 as _,
401};
402#[cfg(feature = "agt0")]
403#[derive(Copy, Clone, Eq, PartialEq)]
404pub struct Agt0 {
405 ptr: *mut u8,
406}
407#[cfg(feature = "agt0")]
408pub const AGT0: self::Agt0 = self::Agt0 {
409 ptr: 0x40084000u32 as _,
410};
411#[cfg(feature = "agt1")]
412pub const AGT1: self::Agt0 = self::Agt0 {
413 ptr: 0x40084100u32 as _,
414};
415#[cfg(feature = "flcn")]
416#[derive(Copy, Clone, Eq, PartialEq)]
417pub struct Flcn {
418 ptr: *mut u8,
419}
420#[cfg(feature = "flcn")]
421pub const FLCN: self::Flcn = self::Flcn {
422 ptr: 0x407ec000u32 as _,
423};
424
425pub use cortex_m::peripheral::Peripherals as CorePeripherals;
426pub use cortex_m::peripheral::{CBP, CPUID, DCB, DWT, FPB, ITM, MPU, NVIC, SCB, SYST, TPIU};
427#[doc = "Number available in the NVIC for configuring priority"]
428pub const NVIC_PRIO_BITS: u8 = 2;
429#[doc(hidden)]
430pub union Vector {
431 _handler: unsafe extern "C" fn(),
432 _reserved: u32,
433}
434#[cfg(feature = "rt")]
435pub use self::Interrupt as interrupt;
436#[cfg(feature = "rt")]
437pub use cortex_m_rt::interrupt;
438#[cfg(feature = "rt")]
439pub mod interrupt_handlers {
440 unsafe extern "C" {
441 pub fn IEL0();
442 pub fn IEL1();
443 pub fn IEL2();
444 pub fn IEL3();
445 pub fn IEL4();
446 pub fn IEL5();
447 pub fn IEL6();
448 pub fn IEL7();
449 pub fn IEL8();
450 pub fn IEL9();
451 pub fn IEL10();
452 pub fn IEL11();
453 pub fn IEL12();
454 pub fn IEL13();
455 pub fn IEL14();
456 pub fn IEL15();
457 pub fn IEL16();
458 pub fn IEL17();
459 pub fn IEL18();
460 pub fn IEL19();
461 pub fn IEL20();
462 pub fn IEL21();
463 pub fn IEL22();
464 pub fn IEL23();
465 pub fn IEL24();
466 pub fn IEL25();
467 pub fn IEL26();
468 pub fn IEL27();
469 pub fn IEL28();
470 pub fn IEL29();
471 pub fn IEL30();
472 pub fn IEL31();
473 }
474}
475#[cfg(feature = "rt")]
476#[doc(hidden)]
477#[unsafe(link_section = ".vector_table.interrupts")]
478#[unsafe(no_mangle)]
479pub static __INTERRUPTS: [Vector; 32] = [
480 Vector {
481 _handler: interrupt_handlers::IEL0,
482 },
483 Vector {
484 _handler: interrupt_handlers::IEL1,
485 },
486 Vector {
487 _handler: interrupt_handlers::IEL2,
488 },
489 Vector {
490 _handler: interrupt_handlers::IEL3,
491 },
492 Vector {
493 _handler: interrupt_handlers::IEL4,
494 },
495 Vector {
496 _handler: interrupt_handlers::IEL5,
497 },
498 Vector {
499 _handler: interrupt_handlers::IEL6,
500 },
501 Vector {
502 _handler: interrupt_handlers::IEL7,
503 },
504 Vector {
505 _handler: interrupt_handlers::IEL8,
506 },
507 Vector {
508 _handler: interrupt_handlers::IEL9,
509 },
510 Vector {
511 _handler: interrupt_handlers::IEL10,
512 },
513 Vector {
514 _handler: interrupt_handlers::IEL11,
515 },
516 Vector {
517 _handler: interrupt_handlers::IEL12,
518 },
519 Vector {
520 _handler: interrupt_handlers::IEL13,
521 },
522 Vector {
523 _handler: interrupt_handlers::IEL14,
524 },
525 Vector {
526 _handler: interrupt_handlers::IEL15,
527 },
528 Vector {
529 _handler: interrupt_handlers::IEL16,
530 },
531 Vector {
532 _handler: interrupt_handlers::IEL17,
533 },
534 Vector {
535 _handler: interrupt_handlers::IEL18,
536 },
537 Vector {
538 _handler: interrupt_handlers::IEL19,
539 },
540 Vector {
541 _handler: interrupt_handlers::IEL20,
542 },
543 Vector {
544 _handler: interrupt_handlers::IEL21,
545 },
546 Vector {
547 _handler: interrupt_handlers::IEL22,
548 },
549 Vector {
550 _handler: interrupt_handlers::IEL23,
551 },
552 Vector {
553 _handler: interrupt_handlers::IEL24,
554 },
555 Vector {
556 _handler: interrupt_handlers::IEL25,
557 },
558 Vector {
559 _handler: interrupt_handlers::IEL26,
560 },
561 Vector {
562 _handler: interrupt_handlers::IEL27,
563 },
564 Vector {
565 _handler: interrupt_handlers::IEL28,
566 },
567 Vector {
568 _handler: interrupt_handlers::IEL29,
569 },
570 Vector {
571 _handler: interrupt_handlers::IEL30,
572 },
573 Vector {
574 _handler: interrupt_handlers::IEL31,
575 },
576];
577#[doc = "Enumeration of all the interrupts."]
578#[derive(Copy, Clone, Debug, PartialEq, Eq)]
579#[repr(u16)]
580pub enum Interrupt {
581 #[doc = "ICU Interrupt 0"]
582 IEL0 = 0,
583
584 #[doc = "ICU Interrupt 1"]
585 IEL1 = 1,
586
587 #[doc = "ICU Interrupt 2"]
588 IEL2 = 2,
589
590 #[doc = "ICU Interrupt 3"]
591 IEL3 = 3,
592
593 #[doc = "ICU Interrupt 4"]
594 IEL4 = 4,
595
596 #[doc = "ICU Interrupt 5"]
597 IEL5 = 5,
598
599 #[doc = "ICU Interrupt 6"]
600 IEL6 = 6,
601
602 #[doc = "ICU Interrupt 7"]
603 IEL7 = 7,
604
605 #[doc = "ICU Interrupt 8"]
606 IEL8 = 8,
607
608 #[doc = "ICU Interrupt 9"]
609 IEL9 = 9,
610
611 #[doc = "ICU Interrupt 10"]
612 IEL10 = 10,
613
614 #[doc = "ICU Interrupt 11"]
615 IEL11 = 11,
616
617 #[doc = "ICU Interrupt 12"]
618 IEL12 = 12,
619
620 #[doc = "ICU Interrupt 13"]
621 IEL13 = 13,
622
623 #[doc = "ICU Interrupt 14"]
624 IEL14 = 14,
625
626 #[doc = "ICU Interrupt 15"]
627 IEL15 = 15,
628
629 #[doc = "ICU Interrupt 16"]
630 IEL16 = 16,
631
632 #[doc = "ICU Interrupt 17"]
633 IEL17 = 17,
634
635 #[doc = "ICU Interrupt 18"]
636 IEL18 = 18,
637
638 #[doc = "ICU Interrupt 19"]
639 IEL19 = 19,
640
641 #[doc = "ICU Interrupt 20"]
642 IEL20 = 20,
643
644 #[doc = "ICU Interrupt 21"]
645 IEL21 = 21,
646
647 #[doc = "ICU Interrupt 22"]
648 IEL22 = 22,
649
650 #[doc = "ICU Interrupt 23"]
651 IEL23 = 23,
652
653 #[doc = "ICU Interrupt 24"]
654 IEL24 = 24,
655
656 #[doc = "ICU Interrupt 25"]
657 IEL25 = 25,
658
659 #[doc = "ICU Interrupt 26"]
660 IEL26 = 26,
661
662 #[doc = "ICU Interrupt 27"]
663 IEL27 = 27,
664
665 #[doc = "ICU Interrupt 28"]
666 IEL28 = 28,
667
668 #[doc = "ICU Interrupt 29"]
669 IEL29 = 29,
670
671 #[doc = "ICU Interrupt 30"]
672 IEL30 = 30,
673
674 #[doc = "ICU Interrupt 31"]
675 IEL31 = 31,
676}
677unsafe impl cortex_m::interrupt::InterruptNumber for Interrupt {
678 #[inline(always)]
679 fn number(self) -> u16 {
680 self as u16
681 }
682}
683#[allow(non_snake_case)]
684pub struct Peripherals {
686 #[cfg(feature = "rmpu")]
687 pub RMPU: self::Rmpu,
688 #[cfg(feature = "sram")]
689 pub SRAM: self::Sram,
690 #[cfg(feature = "bus")]
691 pub BUS: self::Bus,
692 #[cfg(feature = "dtc")]
693 pub DTC: self::Dtc,
694 #[cfg(feature = "icu")]
695 pub ICU: self::Icu,
696 #[cfg(feature = "dbg")]
697 pub DBG: self::Dbg,
698 #[cfg(feature = "sysc")]
699 pub SYSC: self::Sysc,
700 #[cfg(feature = "port0")]
701 pub PORT0: self::Port0,
702 #[cfg(feature = "port1")]
703 pub PORT1: self::Port1,
704 #[cfg(feature = "port2")]
705 pub PORT2: self::Port1,
706 #[cfg(feature = "port3")]
707 pub PORT3: self::Port0,
708 #[cfg(feature = "port4")]
709 pub PORT4: self::Port0,
710 #[cfg(feature = "port5")]
711 pub PORT5: self::Port0,
712 #[cfg(feature = "port9")]
713 pub PORT9: self::Port0,
714 #[cfg(feature = "pfs")]
715 pub PFS: self::Pfs,
716 #[cfg(feature = "elc")]
717 pub ELC: self::Elc,
718 #[cfg(feature = "poeg")]
719 pub POEG: self::Poeg,
720 #[cfg(feature = "rtc")]
721 pub RTC: self::Rtc,
722 #[cfg(feature = "wdt")]
723 pub WDT: self::Wdt,
724 #[cfg(feature = "iwdt")]
725 pub IWDT: self::Iwdt,
726 #[cfg(feature = "cac")]
727 pub CAC: self::Cac,
728 #[cfg(feature = "mstp")]
729 pub MSTP: self::Mstp,
730 #[cfg(feature = "iic0")]
731 pub IIC0: self::Iic0,
732 #[cfg(feature = "iic0wu")]
733 pub IIC0WU: self::Iic0Wu,
734 #[cfg(feature = "doc")]
735 pub DOC: self::Doc,
736 #[cfg(feature = "adc120")]
737 pub ADC120: self::Adc120,
738 #[cfg(feature = "sci0")]
739 pub SCI0: self::Sci0,
740 #[cfg(feature = "sci1")]
741 pub SCI1: self::Sci1,
742 #[cfg(feature = "sci2")]
743 pub SCI2: self::Sci1,
744 #[cfg(feature = "sci9")]
745 pub SCI9: self::Sci1,
746 #[cfg(feature = "spi0")]
747 pub SPI0: self::Spi0,
748 #[cfg(feature = "crc")]
749 pub CRC: self::Crc,
750 #[cfg(feature = "gpt320")]
751 pub GPT320: self::Gpt320,
752 #[cfg(feature = "gpt164")]
753 pub GPT164: self::Gpt164,
754 #[cfg(feature = "gpt165")]
755 pub GPT165: self::Gpt164,
756 #[cfg(feature = "gpt166")]
757 pub GPT166: self::Gpt164,
758 #[cfg(feature = "gpt167")]
759 pub GPT167: self::Gpt164,
760 #[cfg(feature = "gpt168")]
761 pub GPT168: self::Gpt164,
762 #[cfg(feature = "gpt169")]
763 pub GPT169: self::Gpt164,
764 #[cfg(feature = "gpt_ops")]
765 pub GPT_OPS: self::GptOps,
766 #[cfg(feature = "kint")]
767 pub KINT: self::Kint,
768 #[cfg(feature = "agt0")]
769 pub AGT0: self::Agt0,
770 #[cfg(feature = "agt1")]
771 pub AGT1: self::Agt0,
772 #[cfg(feature = "flcn")]
773 pub FLCN: self::Flcn,
774}
775
776impl Peripherals {
777 #[inline]
780 pub fn take() -> Option<Self> {
781 Some(Self::steal())
782 }
783
784 #[inline]
787 pub fn steal() -> Self {
788 Peripherals {
789 #[cfg(feature = "rmpu")]
790 RMPU: crate::RMPU,
791 #[cfg(feature = "sram")]
792 SRAM: crate::SRAM,
793 #[cfg(feature = "bus")]
794 BUS: crate::BUS,
795 #[cfg(feature = "dtc")]
796 DTC: crate::DTC,
797 #[cfg(feature = "icu")]
798 ICU: crate::ICU,
799 #[cfg(feature = "dbg")]
800 DBG: crate::DBG,
801 #[cfg(feature = "sysc")]
802 SYSC: crate::SYSC,
803 #[cfg(feature = "port0")]
804 PORT0: crate::PORT0,
805 #[cfg(feature = "port1")]
806 PORT1: crate::PORT1,
807 #[cfg(feature = "port2")]
808 PORT2: crate::PORT2,
809 #[cfg(feature = "port3")]
810 PORT3: crate::PORT3,
811 #[cfg(feature = "port4")]
812 PORT4: crate::PORT4,
813 #[cfg(feature = "port5")]
814 PORT5: crate::PORT5,
815 #[cfg(feature = "port9")]
816 PORT9: crate::PORT9,
817 #[cfg(feature = "pfs")]
818 PFS: crate::PFS,
819 #[cfg(feature = "elc")]
820 ELC: crate::ELC,
821 #[cfg(feature = "poeg")]
822 POEG: crate::POEG,
823 #[cfg(feature = "rtc")]
824 RTC: crate::RTC,
825 #[cfg(feature = "wdt")]
826 WDT: crate::WDT,
827 #[cfg(feature = "iwdt")]
828 IWDT: crate::IWDT,
829 #[cfg(feature = "cac")]
830 CAC: crate::CAC,
831 #[cfg(feature = "mstp")]
832 MSTP: crate::MSTP,
833 #[cfg(feature = "iic0")]
834 IIC0: crate::IIC0,
835 #[cfg(feature = "iic0wu")]
836 IIC0WU: crate::IIC0WU,
837 #[cfg(feature = "doc")]
838 DOC: crate::DOC,
839 #[cfg(feature = "adc120")]
840 ADC120: crate::ADC120,
841 #[cfg(feature = "sci0")]
842 SCI0: crate::SCI0,
843 #[cfg(feature = "sci1")]
844 SCI1: crate::SCI1,
845 #[cfg(feature = "sci2")]
846 SCI2: crate::SCI2,
847 #[cfg(feature = "sci9")]
848 SCI9: crate::SCI9,
849 #[cfg(feature = "spi0")]
850 SPI0: crate::SPI0,
851 #[cfg(feature = "crc")]
852 CRC: crate::CRC,
853 #[cfg(feature = "gpt320")]
854 GPT320: crate::GPT320,
855 #[cfg(feature = "gpt164")]
856 GPT164: crate::GPT164,
857 #[cfg(feature = "gpt165")]
858 GPT165: crate::GPT165,
859 #[cfg(feature = "gpt166")]
860 GPT166: crate::GPT166,
861 #[cfg(feature = "gpt167")]
862 GPT167: crate::GPT167,
863 #[cfg(feature = "gpt168")]
864 GPT168: crate::GPT168,
865 #[cfg(feature = "gpt169")]
866 GPT169: crate::GPT169,
867 #[cfg(feature = "gpt_ops")]
868 GPT_OPS: crate::GPT_OPS,
869 #[cfg(feature = "kint")]
870 KINT: crate::KINT,
871 #[cfg(feature = "agt0")]
872 AGT0: crate::AGT0,
873 #[cfg(feature = "agt1")]
874 AGT1: crate::AGT1,
875 #[cfg(feature = "flcn")]
876 FLCN: crate::FLCN,
877 }
878 }
879}