1#![cfg_attr(not(feature = "tracing"), no_std)]
20#![allow(non_camel_case_types)]
21#![doc = "Arm Cortex-M23 based Microcontroller RA0E1 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 = "adc_d")]
31pub mod adc_d;
32#[cfg(feature = "bus")]
33pub mod bus;
34#[cfg(feature = "crc")]
35pub mod crc;
36#[cfg(feature = "dbg")]
37pub mod dbg;
38#[cfg(feature = "dtc")]
39pub mod dtc;
40#[cfg(feature = "elc")]
41pub mod elc;
42#[cfg(feature = "flcn")]
43pub mod flcn;
44#[cfg(feature = "icu")]
45pub mod icu;
46#[cfg(feature = "iica")]
47pub mod iica;
48#[cfg(feature = "iwdt")]
49pub mod iwdt;
50#[cfg(feature = "mstp")]
51pub mod mstp;
52#[cfg(feature = "pclbuz")]
53pub mod pclbuz;
54#[cfg(feature = "pfs_a")]
55pub mod pfs_a;
56#[cfg(feature = "porga")]
57pub mod porga;
58#[cfg(feature = "port0")]
59pub mod port0;
60#[cfg(feature = "port1")]
61pub mod port1;
62#[cfg(feature = "port2")]
63pub mod port2;
64#[cfg(feature = "port3")]
65pub mod port3;
66#[cfg(feature = "port4")]
67pub mod port4;
68#[cfg(feature = "port9")]
69pub mod port9;
70#[cfg(feature = "rtc_c")]
71pub mod rtc_c;
72#[cfg(feature = "sau0")]
73pub mod sau0;
74#[cfg(feature = "sau1")]
75pub mod sau1;
76#[cfg(feature = "sram")]
77pub mod sram;
78#[cfg(feature = "sysc")]
79pub mod sysc;
80#[cfg(feature = "tau")]
81pub mod tau;
82#[cfg(feature = "tml32")]
83pub mod tml32;
84#[cfg(feature = "trng")]
85pub mod trng;
86#[cfg(feature = "uarta")]
87pub mod uarta;
88
89#[cfg(feature = "sram")]
90#[derive(Copy, Clone, Eq, PartialEq)]
91pub struct Sram {
92 ptr: *mut u8,
93}
94#[cfg(feature = "sram")]
95pub const SRAM: self::Sram = self::Sram {
96 ptr: 0x40002000u32 as _,
97};
98#[cfg(feature = "bus")]
99#[derive(Copy, Clone, Eq, PartialEq)]
100pub struct Bus {
101 ptr: *mut u8,
102}
103#[cfg(feature = "bus")]
104pub const BUS: self::Bus = self::Bus {
105 ptr: 0x40003000u32 as _,
106};
107#[cfg(feature = "dtc")]
108#[derive(Copy, Clone, Eq, PartialEq)]
109pub struct Dtc {
110 ptr: *mut u8,
111}
112#[cfg(feature = "dtc")]
113pub const DTC: self::Dtc = self::Dtc {
114 ptr: 0x40005400u32 as _,
115};
116#[cfg(feature = "icu")]
117#[derive(Copy, Clone, Eq, PartialEq)]
118pub struct Icu {
119 ptr: *mut u8,
120}
121#[cfg(feature = "icu")]
122pub const ICU: self::Icu = self::Icu {
123 ptr: 0x40006000u32 as _,
124};
125#[cfg(feature = "dbg")]
126#[derive(Copy, Clone, Eq, PartialEq)]
127pub struct Dbg {
128 ptr: *mut u8,
129}
130#[cfg(feature = "dbg")]
131pub const DBG: self::Dbg = self::Dbg {
132 ptr: 0x4001b000u32 as _,
133};
134#[cfg(feature = "sysc")]
135#[derive(Copy, Clone, Eq, PartialEq)]
136pub struct Sysc {
137 ptr: *mut u8,
138}
139#[cfg(feature = "sysc")]
140pub const SYSC: self::Sysc = self::Sysc {
141 ptr: 0x4001e000u32 as _,
142};
143#[cfg(feature = "elc")]
144#[derive(Copy, Clone, Eq, PartialEq)]
145pub struct Elc {
146 ptr: *mut u8,
147}
148#[cfg(feature = "elc")]
149pub const ELC: self::Elc = self::Elc {
150 ptr: 0x40041000u32 as _,
151};
152#[cfg(feature = "iwdt")]
153#[derive(Copy, Clone, Eq, PartialEq)]
154pub struct Iwdt {
155 ptr: *mut u8,
156}
157#[cfg(feature = "iwdt")]
158pub const IWDT: self::Iwdt = self::Iwdt {
159 ptr: 0x40044400u32 as _,
160};
161#[cfg(feature = "mstp")]
162#[derive(Copy, Clone, Eq, PartialEq)]
163pub struct Mstp {
164 ptr: *mut u8,
165}
166#[cfg(feature = "mstp")]
167pub const MSTP: self::Mstp = self::Mstp {
168 ptr: 0x40047000u32 as _,
169};
170#[cfg(feature = "crc")]
171#[derive(Copy, Clone, Eq, PartialEq)]
172pub struct Crc {
173 ptr: *mut u8,
174}
175#[cfg(feature = "crc")]
176pub const CRC: self::Crc = self::Crc {
177 ptr: 0x40074000u32 as _,
178};
179#[cfg(feature = "port0")]
180#[derive(Copy, Clone, Eq, PartialEq)]
181pub struct Port0 {
182 ptr: *mut u8,
183}
184#[cfg(feature = "port0")]
185pub const PORT0: self::Port0 = self::Port0 {
186 ptr: 0x400a0000u32 as _,
187};
188#[cfg(feature = "port1")]
189#[derive(Copy, Clone, Eq, PartialEq)]
190pub struct Port1 {
191 ptr: *mut u8,
192}
193#[cfg(feature = "port1")]
194pub const PORT1: self::Port1 = self::Port1 {
195 ptr: 0x400a0020u32 as _,
196};
197#[cfg(feature = "port2")]
198#[derive(Copy, Clone, Eq, PartialEq)]
199pub struct Port2 {
200 ptr: *mut u8,
201}
202#[cfg(feature = "port2")]
203pub const PORT2: self::Port2 = self::Port2 {
204 ptr: 0x400a0040u32 as _,
205};
206#[cfg(feature = "port3")]
207#[derive(Copy, Clone, Eq, PartialEq)]
208pub struct Port3 {
209 ptr: *mut u8,
210}
211#[cfg(feature = "port3")]
212pub const PORT3: self::Port3 = self::Port3 {
213 ptr: 0x400a0060u32 as _,
214};
215#[cfg(feature = "port4")]
216#[derive(Copy, Clone, Eq, PartialEq)]
217pub struct Port4 {
218 ptr: *mut u8,
219}
220#[cfg(feature = "port4")]
221pub const PORT4: self::Port4 = self::Port4 {
222 ptr: 0x400a0080u32 as _,
223};
224#[cfg(feature = "port9")]
225#[derive(Copy, Clone, Eq, PartialEq)]
226pub struct Port9 {
227 ptr: *mut u8,
228}
229#[cfg(feature = "port9")]
230pub const PORT9: self::Port9 = self::Port9 {
231 ptr: 0x400a0120u32 as _,
232};
233#[cfg(feature = "pfs_a")]
234#[derive(Copy, Clone, Eq, PartialEq)]
235pub struct PfsA {
236 ptr: *mut u8,
237}
238#[cfg(feature = "pfs_a")]
239pub const PFS_A: self::PfsA = self::PfsA {
240 ptr: 0x400a0200u32 as _,
241};
242#[cfg(feature = "porga")]
243#[derive(Copy, Clone, Eq, PartialEq)]
244pub struct Porga {
245 ptr: *mut u8,
246}
247#[cfg(feature = "porga")]
248pub const PORGA: self::Porga = self::Porga {
249 ptr: 0x400a1000u32 as _,
250};
251#[cfg(feature = "adc_d")]
252#[derive(Copy, Clone, Eq, PartialEq)]
253pub struct AdcD {
254 ptr: *mut u8,
255}
256#[cfg(feature = "adc_d")]
257pub const ADC_D: self::AdcD = self::AdcD {
258 ptr: 0x400a1800u32 as _,
259};
260#[cfg(feature = "sau0")]
261#[derive(Copy, Clone, Eq, PartialEq)]
262pub struct Sau0 {
263 ptr: *mut u8,
264}
265#[cfg(feature = "sau0")]
266pub const SAU0: self::Sau0 = self::Sau0 {
267 ptr: 0x400a2000u32 as _,
268};
269#[cfg(feature = "sau1")]
270#[derive(Copy, Clone, Eq, PartialEq)]
271pub struct Sau1 {
272 ptr: *mut u8,
273}
274#[cfg(feature = "sau1")]
275pub const SAU1: self::Sau1 = self::Sau1 {
276 ptr: 0x400a2200u32 as _,
277};
278#[cfg(feature = "tau")]
279#[derive(Copy, Clone, Eq, PartialEq)]
280pub struct Tau {
281 ptr: *mut u8,
282}
283#[cfg(feature = "tau")]
284pub const TAU: self::Tau = self::Tau {
285 ptr: 0x400a2600u32 as _,
286};
287#[cfg(feature = "rtc_c")]
288#[derive(Copy, Clone, Eq, PartialEq)]
289pub struct RtcC {
290 ptr: *mut u8,
291}
292#[cfg(feature = "rtc_c")]
293pub const RTC_C: self::RtcC = self::RtcC {
294 ptr: 0x400a2c00u32 as _,
295};
296#[cfg(feature = "iica")]
297#[derive(Copy, Clone, Eq, PartialEq)]
298pub struct Iica {
299 ptr: *mut u8,
300}
301#[cfg(feature = "iica")]
302pub const IICA: self::Iica = self::Iica {
303 ptr: 0x400a3000u32 as _,
304};
305#[cfg(feature = "uarta")]
306#[derive(Copy, Clone, Eq, PartialEq)]
307pub struct Uarta {
308 ptr: *mut u8,
309}
310#[cfg(feature = "uarta")]
311pub const UARTA: self::Uarta = self::Uarta {
312 ptr: 0x400a3400u32 as _,
313};
314#[cfg(feature = "tml32")]
315#[derive(Copy, Clone, Eq, PartialEq)]
316pub struct Tml32 {
317 ptr: *mut u8,
318}
319#[cfg(feature = "tml32")]
320pub const TML32: self::Tml32 = self::Tml32 {
321 ptr: 0x400a3800u32 as _,
322};
323#[cfg(feature = "pclbuz")]
324#[derive(Copy, Clone, Eq, PartialEq)]
325pub struct Pclbuz {
326 ptr: *mut u8,
327}
328#[cfg(feature = "pclbuz")]
329pub const PCLBUZ: self::Pclbuz = self::Pclbuz {
330 ptr: 0x400a3b00u32 as _,
331};
332#[cfg(feature = "trng")]
333#[derive(Copy, Clone, Eq, PartialEq)]
334pub struct Trng {
335 ptr: *mut u8,
336}
337#[cfg(feature = "trng")]
338pub const TRNG: self::Trng = self::Trng {
339 ptr: 0x400d1000u32 as _,
340};
341#[cfg(feature = "flcn")]
342#[derive(Copy, Clone, Eq, PartialEq)]
343pub struct Flcn {
344 ptr: *mut u8,
345}
346#[cfg(feature = "flcn")]
347pub const FLCN: self::Flcn = self::Flcn {
348 ptr: 0x407ec000u32 as _,
349};
350
351pub use cortex_m::peripheral::Peripherals as CorePeripherals;
352pub use cortex_m::peripheral::{CBP, CPUID, DCB, DWT, FPB, ITM, NVIC, SCB, SYST, TPIU};
353#[doc = "Number available in the NVIC for configuring priority"]
354pub const NVIC_PRIO_BITS: u8 = 2;
355#[doc(hidden)]
356pub union Vector {
357 _handler: unsafe extern "C" fn(),
358 _reserved: u32,
359}
360#[cfg(feature = "rt")]
361pub use self::Interrupt as interrupt;
362#[cfg(feature = "rt")]
363pub use cortex_m_rt::interrupt;
364#[cfg(feature = "rt")]
365pub mod interrupt_handlers {
366 unsafe extern "C" {
367 pub fn IEL0();
368 pub fn IEL1();
369 pub fn IEL2();
370 pub fn IEL3();
371 pub fn IEL4();
372 pub fn IEL5();
373 pub fn IEL6();
374 pub fn IEL7();
375 pub fn IEL8();
376 pub fn IEL9();
377 pub fn IEL10();
378 pub fn IEL11();
379 pub fn IEL12();
380 pub fn IEL13();
381 pub fn IEL14();
382 pub fn IEL15();
383 pub fn IEL16();
384 pub fn IEL17();
385 pub fn IEL18();
386 pub fn IEL19();
387 pub fn IEL20();
388 pub fn IEL21();
389 pub fn IEL22();
390 pub fn IEL23();
391 pub fn IEL24();
392 pub fn IEL25();
393 pub fn IEL26();
394 pub fn IEL27();
395 pub fn IEL28();
396 pub fn IEL29();
397 pub fn IEL30();
398 pub fn IEL31();
399 pub fn IEL32();
400 pub fn IEL33();
401 pub fn IEL34();
402 pub fn IEL35();
403 pub fn IEL36();
404 pub fn IEL37();
405 pub fn IEL38();
406 pub fn IEL39();
407 pub fn IEL40();
408 pub fn IEL41();
409 pub fn IEL42();
410 pub fn IEL43();
411 pub fn IEL44();
412 pub fn IEL45();
413 pub fn IEL46();
414 pub fn IEL47();
415 pub fn IEL48();
416 pub fn IEL49();
417 pub fn IEL50();
418 pub fn IEL51();
419 pub fn IEL52();
420 pub fn IEL53();
421 pub fn IEL54();
422 pub fn IEL55();
423 pub fn IEL56();
424 pub fn IEL57();
425 pub fn IEL58();
426 pub fn IEL59();
427 pub fn IEL60();
428 pub fn IEL61();
429 pub fn IEL62();
430 pub fn IEL63();
431 }
432}
433#[cfg(feature = "rt")]
434#[doc(hidden)]
435#[unsafe(link_section = ".vector_table.interrupts")]
436#[unsafe(no_mangle)]
437pub static __INTERRUPTS: [Vector; 64] = [
438 Vector {
439 _handler: interrupt_handlers::IEL0,
440 },
441 Vector {
442 _handler: interrupt_handlers::IEL1,
443 },
444 Vector {
445 _handler: interrupt_handlers::IEL2,
446 },
447 Vector {
448 _handler: interrupt_handlers::IEL3,
449 },
450 Vector {
451 _handler: interrupt_handlers::IEL4,
452 },
453 Vector {
454 _handler: interrupt_handlers::IEL5,
455 },
456 Vector {
457 _handler: interrupt_handlers::IEL6,
458 },
459 Vector {
460 _handler: interrupt_handlers::IEL7,
461 },
462 Vector {
463 _handler: interrupt_handlers::IEL8,
464 },
465 Vector {
466 _handler: interrupt_handlers::IEL9,
467 },
468 Vector {
469 _handler: interrupt_handlers::IEL10,
470 },
471 Vector {
472 _handler: interrupt_handlers::IEL11,
473 },
474 Vector {
475 _handler: interrupt_handlers::IEL12,
476 },
477 Vector {
478 _handler: interrupt_handlers::IEL13,
479 },
480 Vector {
481 _handler: interrupt_handlers::IEL14,
482 },
483 Vector {
484 _handler: interrupt_handlers::IEL15,
485 },
486 Vector {
487 _handler: interrupt_handlers::IEL16,
488 },
489 Vector {
490 _handler: interrupt_handlers::IEL17,
491 },
492 Vector {
493 _handler: interrupt_handlers::IEL18,
494 },
495 Vector {
496 _handler: interrupt_handlers::IEL19,
497 },
498 Vector {
499 _handler: interrupt_handlers::IEL20,
500 },
501 Vector {
502 _handler: interrupt_handlers::IEL21,
503 },
504 Vector {
505 _handler: interrupt_handlers::IEL22,
506 },
507 Vector {
508 _handler: interrupt_handlers::IEL23,
509 },
510 Vector {
511 _handler: interrupt_handlers::IEL24,
512 },
513 Vector {
514 _handler: interrupt_handlers::IEL25,
515 },
516 Vector {
517 _handler: interrupt_handlers::IEL26,
518 },
519 Vector {
520 _handler: interrupt_handlers::IEL27,
521 },
522 Vector {
523 _handler: interrupt_handlers::IEL28,
524 },
525 Vector {
526 _handler: interrupt_handlers::IEL29,
527 },
528 Vector {
529 _handler: interrupt_handlers::IEL30,
530 },
531 Vector {
532 _handler: interrupt_handlers::IEL31,
533 },
534 Vector {
535 _handler: interrupt_handlers::IEL32,
536 },
537 Vector {
538 _handler: interrupt_handlers::IEL33,
539 },
540 Vector {
541 _handler: interrupt_handlers::IEL34,
542 },
543 Vector {
544 _handler: interrupt_handlers::IEL35,
545 },
546 Vector {
547 _handler: interrupt_handlers::IEL36,
548 },
549 Vector {
550 _handler: interrupt_handlers::IEL37,
551 },
552 Vector {
553 _handler: interrupt_handlers::IEL38,
554 },
555 Vector {
556 _handler: interrupt_handlers::IEL39,
557 },
558 Vector {
559 _handler: interrupt_handlers::IEL40,
560 },
561 Vector {
562 _handler: interrupt_handlers::IEL41,
563 },
564 Vector {
565 _handler: interrupt_handlers::IEL42,
566 },
567 Vector {
568 _handler: interrupt_handlers::IEL43,
569 },
570 Vector {
571 _handler: interrupt_handlers::IEL44,
572 },
573 Vector {
574 _handler: interrupt_handlers::IEL45,
575 },
576 Vector {
577 _handler: interrupt_handlers::IEL46,
578 },
579 Vector {
580 _handler: interrupt_handlers::IEL47,
581 },
582 Vector {
583 _handler: interrupt_handlers::IEL48,
584 },
585 Vector {
586 _handler: interrupt_handlers::IEL49,
587 },
588 Vector {
589 _handler: interrupt_handlers::IEL50,
590 },
591 Vector {
592 _handler: interrupt_handlers::IEL51,
593 },
594 Vector {
595 _handler: interrupt_handlers::IEL52,
596 },
597 Vector {
598 _handler: interrupt_handlers::IEL53,
599 },
600 Vector {
601 _handler: interrupt_handlers::IEL54,
602 },
603 Vector {
604 _handler: interrupt_handlers::IEL55,
605 },
606 Vector {
607 _handler: interrupt_handlers::IEL56,
608 },
609 Vector {
610 _handler: interrupt_handlers::IEL57,
611 },
612 Vector {
613 _handler: interrupt_handlers::IEL58,
614 },
615 Vector {
616 _handler: interrupt_handlers::IEL59,
617 },
618 Vector {
619 _handler: interrupt_handlers::IEL60,
620 },
621 Vector {
622 _handler: interrupt_handlers::IEL61,
623 },
624 Vector {
625 _handler: interrupt_handlers::IEL62,
626 },
627 Vector {
628 _handler: interrupt_handlers::IEL63,
629 },
630];
631#[doc = "Enumeration of all the interrupts."]
632#[derive(Copy, Clone, Debug, PartialEq, Eq)]
633#[repr(u16)]
634pub enum Interrupt {
635 #[doc = "ICU Interrupt 0"]
636 IEL0 = 0,
637
638 #[doc = "ICU Interrupt 1"]
639 IEL1 = 1,
640
641 #[doc = "ICU Interrupt 2"]
642 IEL2 = 2,
643
644 #[doc = "ICU Interrupt 3"]
645 IEL3 = 3,
646
647 #[doc = "ICU Interrupt 4"]
648 IEL4 = 4,
649
650 #[doc = "ICU Interrupt 5"]
651 IEL5 = 5,
652
653 #[doc = "ICU Interrupt 6"]
654 IEL6 = 6,
655
656 #[doc = "ICU Interrupt 7"]
657 IEL7 = 7,
658
659 #[doc = "ICU Interrupt 8"]
660 IEL8 = 8,
661
662 #[doc = "ICU Interrupt 9"]
663 IEL9 = 9,
664
665 #[doc = "ICU Interrupt 10"]
666 IEL10 = 10,
667
668 #[doc = "ICU Interrupt 11"]
669 IEL11 = 11,
670
671 #[doc = "ICU Interrupt 12"]
672 IEL12 = 12,
673
674 #[doc = "ICU Interrupt 13"]
675 IEL13 = 13,
676
677 #[doc = "ICU Interrupt 14"]
678 IEL14 = 14,
679
680 #[doc = "ICU Interrupt 15"]
681 IEL15 = 15,
682
683 #[doc = "ICU Interrupt 16"]
684 IEL16 = 16,
685
686 #[doc = "ICU Interrupt 17"]
687 IEL17 = 17,
688
689 #[doc = "ICU Interrupt 18"]
690 IEL18 = 18,
691
692 #[doc = "ICU Interrupt 19"]
693 IEL19 = 19,
694
695 #[doc = "ICU Interrupt 20"]
696 IEL20 = 20,
697
698 #[doc = "ICU Interrupt 21"]
699 IEL21 = 21,
700
701 #[doc = "ICU Interrupt 22"]
702 IEL22 = 22,
703
704 #[doc = "ICU Interrupt 23"]
705 IEL23 = 23,
706
707 #[doc = "ICU Interrupt 24"]
708 IEL24 = 24,
709
710 #[doc = "ICU Interrupt 25"]
711 IEL25 = 25,
712
713 #[doc = "ICU Interrupt 26"]
714 IEL26 = 26,
715
716 #[doc = "ICU Interrupt 27"]
717 IEL27 = 27,
718
719 #[doc = "ICU Interrupt 28"]
720 IEL28 = 28,
721
722 #[doc = "ICU Interrupt 29"]
723 IEL29 = 29,
724
725 #[doc = "ICU Interrupt 30"]
726 IEL30 = 30,
727
728 #[doc = "ICU Interrupt 31"]
729 IEL31 = 31,
730
731 #[doc = "ICU Interrupt 32"]
732 IEL32 = 32,
733
734 #[doc = "ICU Interrupt 33"]
735 IEL33 = 33,
736
737 #[doc = "ICU Interrupt 34"]
738 IEL34 = 34,
739
740 #[doc = "ICU Interrupt 35"]
741 IEL35 = 35,
742
743 #[doc = "ICU Interrupt 36"]
744 IEL36 = 36,
745
746 #[doc = "ICU Interrupt 37"]
747 IEL37 = 37,
748
749 #[doc = "ICU Interrupt 38"]
750 IEL38 = 38,
751
752 #[doc = "ICU Interrupt 39"]
753 IEL39 = 39,
754
755 #[doc = "ICU Interrupt 40"]
756 IEL40 = 40,
757
758 #[doc = "ICU Interrupt 41"]
759 IEL41 = 41,
760
761 #[doc = "ICU Interrupt 42"]
762 IEL42 = 42,
763
764 #[doc = "ICU Interrupt 43"]
765 IEL43 = 43,
766
767 #[doc = "ICU Interrupt 44"]
768 IEL44 = 44,
769
770 #[doc = "ICU Interrupt 45"]
771 IEL45 = 45,
772
773 #[doc = "ICU Interrupt 46"]
774 IEL46 = 46,
775
776 #[doc = "ICU Interrupt 47"]
777 IEL47 = 47,
778
779 #[doc = "ICU Interrupt 48"]
780 IEL48 = 48,
781
782 #[doc = "ICU Interrupt 49"]
783 IEL49 = 49,
784
785 #[doc = "ICU Interrupt 50"]
786 IEL50 = 50,
787
788 #[doc = "ICU Interrupt 51"]
789 IEL51 = 51,
790
791 #[doc = "ICU Interrupt 52"]
792 IEL52 = 52,
793
794 #[doc = "ICU Interrupt 53"]
795 IEL53 = 53,
796
797 #[doc = "ICU Interrupt 54"]
798 IEL54 = 54,
799
800 #[doc = "ICU Interrupt 55"]
801 IEL55 = 55,
802
803 #[doc = "ICU Interrupt 56"]
804 IEL56 = 56,
805
806 #[doc = "ICU Interrupt 57"]
807 IEL57 = 57,
808
809 #[doc = "ICU Interrupt 58"]
810 IEL58 = 58,
811
812 #[doc = "ICU Interrupt 59"]
813 IEL59 = 59,
814
815 #[doc = "ICU Interrupt 60"]
816 IEL60 = 60,
817
818 #[doc = "ICU Interrupt 61"]
819 IEL61 = 61,
820
821 #[doc = "ICU Interrupt 62"]
822 IEL62 = 62,
823
824 #[doc = "ICU Interrupt 63"]
825 IEL63 = 63,
826}
827unsafe impl cortex_m::interrupt::InterruptNumber for Interrupt {
828 #[inline(always)]
829 fn number(self) -> u16 {
830 self as u16
831 }
832}
833#[allow(non_snake_case)]
834pub struct Peripherals {
836 #[cfg(feature = "sram")]
837 pub SRAM: self::Sram,
838 #[cfg(feature = "bus")]
839 pub BUS: self::Bus,
840 #[cfg(feature = "dtc")]
841 pub DTC: self::Dtc,
842 #[cfg(feature = "icu")]
843 pub ICU: self::Icu,
844 #[cfg(feature = "dbg")]
845 pub DBG: self::Dbg,
846 #[cfg(feature = "sysc")]
847 pub SYSC: self::Sysc,
848 #[cfg(feature = "elc")]
849 pub ELC: self::Elc,
850 #[cfg(feature = "iwdt")]
851 pub IWDT: self::Iwdt,
852 #[cfg(feature = "mstp")]
853 pub MSTP: self::Mstp,
854 #[cfg(feature = "crc")]
855 pub CRC: self::Crc,
856 #[cfg(feature = "port0")]
857 pub PORT0: self::Port0,
858 #[cfg(feature = "port1")]
859 pub PORT1: self::Port1,
860 #[cfg(feature = "port2")]
861 pub PORT2: self::Port2,
862 #[cfg(feature = "port3")]
863 pub PORT3: self::Port3,
864 #[cfg(feature = "port4")]
865 pub PORT4: self::Port4,
866 #[cfg(feature = "port9")]
867 pub PORT9: self::Port9,
868 #[cfg(feature = "pfs_a")]
869 pub PFS_A: self::PfsA,
870 #[cfg(feature = "porga")]
871 pub PORGA: self::Porga,
872 #[cfg(feature = "adc_d")]
873 pub ADC_D: self::AdcD,
874 #[cfg(feature = "sau0")]
875 pub SAU0: self::Sau0,
876 #[cfg(feature = "sau1")]
877 pub SAU1: self::Sau1,
878 #[cfg(feature = "tau")]
879 pub TAU: self::Tau,
880 #[cfg(feature = "rtc_c")]
881 pub RTC_C: self::RtcC,
882 #[cfg(feature = "iica")]
883 pub IICA: self::Iica,
884 #[cfg(feature = "uarta")]
885 pub UARTA: self::Uarta,
886 #[cfg(feature = "tml32")]
887 pub TML32: self::Tml32,
888 #[cfg(feature = "pclbuz")]
889 pub PCLBUZ: self::Pclbuz,
890 #[cfg(feature = "trng")]
891 pub TRNG: self::Trng,
892 #[cfg(feature = "flcn")]
893 pub FLCN: self::Flcn,
894}
895
896impl Peripherals {
897 #[inline]
900 pub fn take() -> Option<Self> {
901 Some(Self::steal())
902 }
903
904 #[inline]
907 pub fn steal() -> Self {
908 Peripherals {
909 #[cfg(feature = "sram")]
910 SRAM: crate::SRAM,
911 #[cfg(feature = "bus")]
912 BUS: crate::BUS,
913 #[cfg(feature = "dtc")]
914 DTC: crate::DTC,
915 #[cfg(feature = "icu")]
916 ICU: crate::ICU,
917 #[cfg(feature = "dbg")]
918 DBG: crate::DBG,
919 #[cfg(feature = "sysc")]
920 SYSC: crate::SYSC,
921 #[cfg(feature = "elc")]
922 ELC: crate::ELC,
923 #[cfg(feature = "iwdt")]
924 IWDT: crate::IWDT,
925 #[cfg(feature = "mstp")]
926 MSTP: crate::MSTP,
927 #[cfg(feature = "crc")]
928 CRC: crate::CRC,
929 #[cfg(feature = "port0")]
930 PORT0: crate::PORT0,
931 #[cfg(feature = "port1")]
932 PORT1: crate::PORT1,
933 #[cfg(feature = "port2")]
934 PORT2: crate::PORT2,
935 #[cfg(feature = "port3")]
936 PORT3: crate::PORT3,
937 #[cfg(feature = "port4")]
938 PORT4: crate::PORT4,
939 #[cfg(feature = "port9")]
940 PORT9: crate::PORT9,
941 #[cfg(feature = "pfs_a")]
942 PFS_A: crate::PFS_A,
943 #[cfg(feature = "porga")]
944 PORGA: crate::PORGA,
945 #[cfg(feature = "adc_d")]
946 ADC_D: crate::ADC_D,
947 #[cfg(feature = "sau0")]
948 SAU0: crate::SAU0,
949 #[cfg(feature = "sau1")]
950 SAU1: crate::SAU1,
951 #[cfg(feature = "tau")]
952 TAU: crate::TAU,
953 #[cfg(feature = "rtc_c")]
954 RTC_C: crate::RTC_C,
955 #[cfg(feature = "iica")]
956 IICA: crate::IICA,
957 #[cfg(feature = "uarta")]
958 UARTA: crate::UARTA,
959 #[cfg(feature = "tml32")]
960 TML32: crate::TML32,
961 #[cfg(feature = "pclbuz")]
962 PCLBUZ: crate::PCLBUZ,
963 #[cfg(feature = "trng")]
964 TRNG: crate::TRNG,
965 #[cfg(feature = "flcn")]
966 FLCN: crate::FLCN,
967 }
968 }
969}