da14681_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.2, with svd2pac 0.6.0 on Thu, 24 Jul 2025 04:45:04 +0000
19#![cfg_attr(not(feature = "tracing"), no_std)]
20#![allow(non_camel_case_types)]
21#![doc = ""]
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 = "aes_hash")]
31pub mod aes_hash;
32#[cfg(feature = "anamisc")]
33pub mod anamisc;
34#[cfg(feature = "apu")]
35pub mod apu;
36#[cfg(feature = "ble")]
37pub mod ble;
38#[cfg(feature = "cache")]
39pub mod cache;
40#[cfg(feature = "chip_version")]
41pub mod chip_version;
42#[cfg(feature = "coex")]
43pub mod coex;
44#[cfg(feature = "crg_per")]
45pub mod crg_per;
46#[cfg(feature = "crg_top")]
47pub mod crg_top;
48#[cfg(feature = "dcdc")]
49pub mod dcdc;
50#[cfg(feature = "dma")]
51pub mod dma;
52#[cfg(feature = "ecc")]
53pub mod ecc;
54#[cfg(feature = "ftdf")]
55pub mod ftdf;
56#[cfg(feature = "gp_timers")]
57pub mod gp_timers;
58#[cfg(feature = "gpadc")]
59pub mod gpadc;
60#[cfg(feature = "gpio")]
61pub mod gpio;
62#[cfg(feature = "gpreg")]
63pub mod gpreg;
64#[cfg(feature = "i2c")]
65pub mod i2c;
66#[cfg(feature = "i2c2")]
67pub mod i2c2;
68#[cfg(feature = "ir")]
69pub mod ir;
70#[cfg(feature = "kbscan")]
71pub mod kbscan;
72#[cfg(feature = "nvic")]
73pub mod nvic;
74#[cfg(feature = "otpc")]
75pub mod otpc;
76#[cfg(feature = "qspic")]
77pub mod qspic;
78#[cfg(feature = "quad")]
79pub mod quad;
80#[cfg(feature = "scb")]
81pub mod scb;
82#[cfg(feature = "spi")]
83pub mod spi;
84#[cfg(feature = "spi2")]
85pub mod spi2;
86#[cfg(feature = "systick")]
87pub mod systick;
88#[cfg(feature = "timer1")]
89pub mod timer1;
90#[cfg(feature = "trng")]
91pub mod trng;
92#[cfg(feature = "uart")]
93pub mod uart;
94#[cfg(feature = "uart2")]
95pub mod uart2;
96#[cfg(feature = "usb")]
97pub mod usb;
98#[cfg(feature = "wakeup")]
99pub mod wakeup;
100#[cfg(feature = "wdog")]
101pub mod wdog;
102
103#[cfg(feature = "nvic")]
104#[derive(Copy, Clone, Eq, PartialEq)]
105pub struct Nvic {
106    ptr: *mut u8,
107}
108#[cfg(feature = "nvic")]
109pub const NVIC: self::Nvic = self::Nvic {
110    ptr: 0xe000e100u32 as _,
111};
112#[cfg(feature = "scb")]
113#[derive(Copy, Clone, Eq, PartialEq)]
114pub struct Scb {
115    ptr: *mut u8,
116}
117#[cfg(feature = "scb")]
118pub const SCB: self::Scb = self::Scb {
119    ptr: 0xe000ed00u32 as _,
120};
121#[cfg(feature = "systick")]
122#[derive(Copy, Clone, Eq, PartialEq)]
123pub struct SysTick {
124    ptr: *mut u8,
125}
126#[cfg(feature = "systick")]
127pub const SYSTICK: self::SysTick = self::SysTick {
128    ptr: 0xe000e010u32 as _,
129};
130#[cfg(feature = "aes_hash")]
131#[derive(Copy, Clone, Eq, PartialEq)]
132pub struct AesHash {
133    ptr: *mut u8,
134}
135#[cfg(feature = "aes_hash")]
136pub const AES_HASH: self::AesHash = self::AesHash {
137    ptr: 0x40020000u32 as _,
138};
139#[cfg(feature = "anamisc")]
140#[derive(Copy, Clone, Eq, PartialEq)]
141pub struct Anamisc {
142    ptr: *mut u8,
143}
144#[cfg(feature = "anamisc")]
145pub const ANAMISC: self::Anamisc = self::Anamisc {
146    ptr: 0x50001b00u32 as _,
147};
148#[cfg(feature = "apu")]
149#[derive(Copy, Clone, Eq, PartialEq)]
150pub struct Apu {
151    ptr: *mut u8,
152}
153#[cfg(feature = "apu")]
154pub const APU: self::Apu = self::Apu {
155    ptr: 0x50004000u32 as _,
156};
157#[cfg(feature = "ble")]
158#[derive(Copy, Clone, Eq, PartialEq)]
159pub struct Ble {
160    ptr: *mut u8,
161}
162#[cfg(feature = "ble")]
163pub const BLE: self::Ble = self::Ble {
164    ptr: 0x40000000u32 as _,
165};
166#[cfg(feature = "cache")]
167#[derive(Copy, Clone, Eq, PartialEq)]
168pub struct Cache {
169    ptr: *mut u8,
170}
171#[cfg(feature = "cache")]
172pub const CACHE: self::Cache = self::Cache {
173    ptr: 0x400c3000u32 as _,
174};
175#[cfg(feature = "chip_version")]
176#[derive(Copy, Clone, Eq, PartialEq)]
177pub struct ChipVersion {
178    ptr: *mut u8,
179}
180#[cfg(feature = "chip_version")]
181pub const CHIP_VERSION: self::ChipVersion = self::ChipVersion {
182    ptr: 0x50003200u32 as _,
183};
184#[cfg(feature = "coex")]
185#[derive(Copy, Clone, Eq, PartialEq)]
186pub struct Coex {
187    ptr: *mut u8,
188}
189#[cfg(feature = "coex")]
190pub const COEX: self::Coex = self::Coex {
191    ptr: 0x50002f00u32 as _,
192};
193#[cfg(feature = "crg_per")]
194#[derive(Copy, Clone, Eq, PartialEq)]
195pub struct CrgPer {
196    ptr: *mut u8,
197}
198#[cfg(feature = "crg_per")]
199pub const CRG_PER: self::CrgPer = self::CrgPer {
200    ptr: 0x50001c00u32 as _,
201};
202#[cfg(feature = "crg_top")]
203#[derive(Copy, Clone, Eq, PartialEq)]
204pub struct CrgTop {
205    ptr: *mut u8,
206}
207#[cfg(feature = "crg_top")]
208pub const CRG_TOP: self::CrgTop = self::CrgTop {
209    ptr: 0x50000000u32 as _,
210};
211#[cfg(feature = "dcdc")]
212#[derive(Copy, Clone, Eq, PartialEq)]
213pub struct Dcdc {
214    ptr: *mut u8,
215}
216#[cfg(feature = "dcdc")]
217pub const DCDC: self::Dcdc = self::Dcdc {
218    ptr: 0x50000080u32 as _,
219};
220#[cfg(feature = "dma")]
221#[derive(Copy, Clone, Eq, PartialEq)]
222pub struct Dma {
223    ptr: *mut u8,
224}
225#[cfg(feature = "dma")]
226pub const DMA: self::Dma = self::Dma {
227    ptr: 0x50003500u32 as _,
228};
229#[cfg(feature = "ecc")]
230#[derive(Copy, Clone, Eq, PartialEq)]
231pub struct Ecc {
232    ptr: *mut u8,
233}
234#[cfg(feature = "ecc")]
235pub const ECC: self::Ecc = self::Ecc {
236    ptr: 0x50006000u32 as _,
237};
238#[cfg(feature = "ftdf")]
239#[derive(Copy, Clone, Eq, PartialEq)]
240pub struct Ftdf {
241    ptr: *mut u8,
242}
243#[cfg(feature = "ftdf")]
244pub const FTDF: self::Ftdf = self::Ftdf {
245    ptr: 0x40080000u32 as _,
246};
247#[cfg(feature = "gp_timers")]
248#[derive(Copy, Clone, Eq, PartialEq)]
249pub struct GpTimers {
250    ptr: *mut u8,
251}
252#[cfg(feature = "gp_timers")]
253pub const GP_TIMERS: self::GpTimers = self::GpTimers {
254    ptr: 0x50003400u32 as _,
255};
256#[cfg(feature = "gpadc")]
257#[derive(Copy, Clone, Eq, PartialEq)]
258pub struct Gpadc {
259    ptr: *mut u8,
260}
261#[cfg(feature = "gpadc")]
262pub const GPADC: self::Gpadc = self::Gpadc {
263    ptr: 0x50001900u32 as _,
264};
265#[cfg(feature = "gpio")]
266#[derive(Copy, Clone, Eq, PartialEq)]
267pub struct Gpio {
268    ptr: *mut u8,
269}
270#[cfg(feature = "gpio")]
271pub const GPIO: self::Gpio = self::Gpio {
272    ptr: 0x50003000u32 as _,
273};
274#[cfg(feature = "gpreg")]
275#[derive(Copy, Clone, Eq, PartialEq)]
276pub struct Gpreg {
277    ptr: *mut u8,
278}
279#[cfg(feature = "gpreg")]
280pub const GPREG: self::Gpreg = self::Gpreg {
281    ptr: 0x50003300u32 as _,
282};
283#[cfg(feature = "i2c")]
284#[derive(Copy, Clone, Eq, PartialEq)]
285pub struct I2C {
286    ptr: *mut u8,
287}
288#[cfg(feature = "i2c")]
289pub const I2C: self::I2C = self::I2C {
290    ptr: 0x50001400u32 as _,
291};
292#[cfg(feature = "i2c2")]
293#[derive(Copy, Clone, Eq, PartialEq)]
294pub struct I2C2 {
295    ptr: *mut u8,
296}
297#[cfg(feature = "i2c2")]
298pub const I2C2: self::I2C2 = self::I2C2 {
299    ptr: 0x50001500u32 as _,
300};
301#[cfg(feature = "ir")]
302#[derive(Copy, Clone, Eq, PartialEq)]
303pub struct Ir {
304    ptr: *mut u8,
305}
306#[cfg(feature = "ir")]
307pub const IR: self::Ir = self::Ir {
308    ptr: 0x50001700u32 as _,
309};
310#[cfg(feature = "kbscan")]
311#[derive(Copy, Clone, Eq, PartialEq)]
312pub struct Kbscan {
313    ptr: *mut u8,
314}
315#[cfg(feature = "kbscan")]
316pub const KBSCAN: self::Kbscan = self::Kbscan {
317    ptr: 0x50001600u32 as _,
318};
319#[cfg(feature = "otpc")]
320#[derive(Copy, Clone, Eq, PartialEq)]
321pub struct Otpc {
322    ptr: *mut u8,
323}
324#[cfg(feature = "otpc")]
325pub const OTPC: self::Otpc = self::Otpc {
326    ptr: 0x7f40000u32 as _,
327};
328#[cfg(feature = "qspic")]
329#[derive(Copy, Clone, Eq, PartialEq)]
330pub struct Qspic {
331    ptr: *mut u8,
332}
333#[cfg(feature = "qspic")]
334pub const QSPIC: self::Qspic = self::Qspic {
335    ptr: 0xc000000u32 as _,
336};
337#[cfg(feature = "quad")]
338#[derive(Copy, Clone, Eq, PartialEq)]
339pub struct Quad {
340    ptr: *mut u8,
341}
342#[cfg(feature = "quad")]
343pub const QUAD: self::Quad = self::Quad {
344    ptr: 0x50001a00u32 as _,
345};
346#[cfg(feature = "spi")]
347#[derive(Copy, Clone, Eq, PartialEq)]
348pub struct Spi {
349    ptr: *mut u8,
350}
351#[cfg(feature = "spi")]
352pub const SPI: self::Spi = self::Spi {
353    ptr: 0x50001200u32 as _,
354};
355#[cfg(feature = "spi2")]
356#[derive(Copy, Clone, Eq, PartialEq)]
357pub struct Spi2 {
358    ptr: *mut u8,
359}
360#[cfg(feature = "spi2")]
361pub const SPI2: self::Spi2 = self::Spi2 {
362    ptr: 0x50001300u32 as _,
363};
364#[cfg(feature = "timer1")]
365#[derive(Copy, Clone, Eq, PartialEq)]
366pub struct Timer1 {
367    ptr: *mut u8,
368}
369#[cfg(feature = "timer1")]
370pub const TIMER1: self::Timer1 = self::Timer1 {
371    ptr: 0x50000200u32 as _,
372};
373#[cfg(feature = "trng")]
374#[derive(Copy, Clone, Eq, PartialEq)]
375pub struct Trng {
376    ptr: *mut u8,
377}
378#[cfg(feature = "trng")]
379pub const TRNG: self::Trng = self::Trng {
380    ptr: 0x50005000u32 as _,
381};
382#[cfg(feature = "uart")]
383#[derive(Copy, Clone, Eq, PartialEq)]
384pub struct Uart {
385    ptr: *mut u8,
386}
387#[cfg(feature = "uart")]
388pub const UART: self::Uart = self::Uart {
389    ptr: 0x50001000u32 as _,
390};
391#[cfg(feature = "uart2")]
392#[derive(Copy, Clone, Eq, PartialEq)]
393pub struct Uart2 {
394    ptr: *mut u8,
395}
396#[cfg(feature = "uart2")]
397pub const UART2: self::Uart2 = self::Uart2 {
398    ptr: 0x50001100u32 as _,
399};
400#[cfg(feature = "usb")]
401#[derive(Copy, Clone, Eq, PartialEq)]
402pub struct Usb {
403    ptr: *mut u8,
404}
405#[cfg(feature = "usb")]
406pub const USB: self::Usb = self::Usb {
407    ptr: 0x50001800u32 as _,
408};
409#[cfg(feature = "wakeup")]
410#[derive(Copy, Clone, Eq, PartialEq)]
411pub struct Wakeup {
412    ptr: *mut u8,
413}
414#[cfg(feature = "wakeup")]
415pub const WAKEUP: self::Wakeup = self::Wakeup {
416    ptr: 0x50000100u32 as _,
417};
418#[cfg(feature = "wdog")]
419#[derive(Copy, Clone, Eq, PartialEq)]
420pub struct Wdog {
421    ptr: *mut u8,
422}
423#[cfg(feature = "wdog")]
424pub const WDOG: self::Wdog = self::Wdog {
425    ptr: 0x50003100u32 as _,
426};
427
428pub use cortex_m::peripheral::Peripherals as CorePeripherals;
429pub use cortex_m::peripheral::{CBP, CPUID, DCB, DWT, FPB, FPU, ITM, MPU, NVIC, SCB, SYST, TPIU};
430#[doc = "Number available in the NVIC for configuring priority"]
431pub const NVIC_PRIO_BITS: u8 = 3;
432#[doc(hidden)]
433pub union Vector {
434    _handler: unsafe extern "C" fn(),
435    _reserved: u32,
436}
437#[allow(non_snake_case)]
438/// Required for compatibility with RTIC and other frameworks
439pub struct Peripherals {
440    #[cfg(feature = "nvic")]
441    pub NVIC: self::Nvic,
442    #[cfg(feature = "scb")]
443    pub SCB: self::Scb,
444    #[cfg(feature = "systick")]
445    pub SYSTICK: self::SysTick,
446    #[cfg(feature = "aes_hash")]
447    pub AES_HASH: self::AesHash,
448    #[cfg(feature = "anamisc")]
449    pub ANAMISC: self::Anamisc,
450    #[cfg(feature = "apu")]
451    pub APU: self::Apu,
452    #[cfg(feature = "ble")]
453    pub BLE: self::Ble,
454    #[cfg(feature = "cache")]
455    pub CACHE: self::Cache,
456    #[cfg(feature = "chip_version")]
457    pub CHIP_VERSION: self::ChipVersion,
458    #[cfg(feature = "coex")]
459    pub COEX: self::Coex,
460    #[cfg(feature = "crg_per")]
461    pub CRG_PER: self::CrgPer,
462    #[cfg(feature = "crg_top")]
463    pub CRG_TOP: self::CrgTop,
464    #[cfg(feature = "dcdc")]
465    pub DCDC: self::Dcdc,
466    #[cfg(feature = "dma")]
467    pub DMA: self::Dma,
468    #[cfg(feature = "ecc")]
469    pub ECC: self::Ecc,
470    #[cfg(feature = "ftdf")]
471    pub FTDF: self::Ftdf,
472    #[cfg(feature = "gp_timers")]
473    pub GP_TIMERS: self::GpTimers,
474    #[cfg(feature = "gpadc")]
475    pub GPADC: self::Gpadc,
476    #[cfg(feature = "gpio")]
477    pub GPIO: self::Gpio,
478    #[cfg(feature = "gpreg")]
479    pub GPREG: self::Gpreg,
480    #[cfg(feature = "i2c")]
481    pub I2C: self::I2C,
482    #[cfg(feature = "i2c2")]
483    pub I2C2: self::I2C2,
484    #[cfg(feature = "ir")]
485    pub IR: self::Ir,
486    #[cfg(feature = "kbscan")]
487    pub KBSCAN: self::Kbscan,
488    #[cfg(feature = "otpc")]
489    pub OTPC: self::Otpc,
490    #[cfg(feature = "qspic")]
491    pub QSPIC: self::Qspic,
492    #[cfg(feature = "quad")]
493    pub QUAD: self::Quad,
494    #[cfg(feature = "spi")]
495    pub SPI: self::Spi,
496    #[cfg(feature = "spi2")]
497    pub SPI2: self::Spi2,
498    #[cfg(feature = "timer1")]
499    pub TIMER1: self::Timer1,
500    #[cfg(feature = "trng")]
501    pub TRNG: self::Trng,
502    #[cfg(feature = "uart")]
503    pub UART: self::Uart,
504    #[cfg(feature = "uart2")]
505    pub UART2: self::Uart2,
506    #[cfg(feature = "usb")]
507    pub USB: self::Usb,
508    #[cfg(feature = "wakeup")]
509    pub WAKEUP: self::Wakeup,
510    #[cfg(feature = "wdog")]
511    pub WDOG: self::Wdog,
512}
513
514impl Peripherals {
515    /// Returns Peripheral struct multiple times
516    /// Required for compatibility with RTIC and other frameworks
517    #[inline]
518    pub fn take() -> Option<Self> {
519        Some(Self::steal())
520    }
521
522    /// Returns Peripheral struct multiple times
523    /// Required for compatibility with RTIC and other frameworks
524    #[inline]
525    pub fn steal() -> Self {
526        Peripherals {
527            #[cfg(feature = "nvic")]
528            NVIC: crate::NVIC,
529            #[cfg(feature = "scb")]
530            SCB: crate::SCB,
531            #[cfg(feature = "systick")]
532            SYSTICK: crate::SYSTICK,
533            #[cfg(feature = "aes_hash")]
534            AES_HASH: crate::AES_HASH,
535            #[cfg(feature = "anamisc")]
536            ANAMISC: crate::ANAMISC,
537            #[cfg(feature = "apu")]
538            APU: crate::APU,
539            #[cfg(feature = "ble")]
540            BLE: crate::BLE,
541            #[cfg(feature = "cache")]
542            CACHE: crate::CACHE,
543            #[cfg(feature = "chip_version")]
544            CHIP_VERSION: crate::CHIP_VERSION,
545            #[cfg(feature = "coex")]
546            COEX: crate::COEX,
547            #[cfg(feature = "crg_per")]
548            CRG_PER: crate::CRG_PER,
549            #[cfg(feature = "crg_top")]
550            CRG_TOP: crate::CRG_TOP,
551            #[cfg(feature = "dcdc")]
552            DCDC: crate::DCDC,
553            #[cfg(feature = "dma")]
554            DMA: crate::DMA,
555            #[cfg(feature = "ecc")]
556            ECC: crate::ECC,
557            #[cfg(feature = "ftdf")]
558            FTDF: crate::FTDF,
559            #[cfg(feature = "gp_timers")]
560            GP_TIMERS: crate::GP_TIMERS,
561            #[cfg(feature = "gpadc")]
562            GPADC: crate::GPADC,
563            #[cfg(feature = "gpio")]
564            GPIO: crate::GPIO,
565            #[cfg(feature = "gpreg")]
566            GPREG: crate::GPREG,
567            #[cfg(feature = "i2c")]
568            I2C: crate::I2C,
569            #[cfg(feature = "i2c2")]
570            I2C2: crate::I2C2,
571            #[cfg(feature = "ir")]
572            IR: crate::IR,
573            #[cfg(feature = "kbscan")]
574            KBSCAN: crate::KBSCAN,
575            #[cfg(feature = "otpc")]
576            OTPC: crate::OTPC,
577            #[cfg(feature = "qspic")]
578            QSPIC: crate::QSPIC,
579            #[cfg(feature = "quad")]
580            QUAD: crate::QUAD,
581            #[cfg(feature = "spi")]
582            SPI: crate::SPI,
583            #[cfg(feature = "spi2")]
584            SPI2: crate::SPI2,
585            #[cfg(feature = "timer1")]
586            TIMER1: crate::TIMER1,
587            #[cfg(feature = "trng")]
588            TRNG: crate::TRNG,
589            #[cfg(feature = "uart")]
590            UART: crate::UART,
591            #[cfg(feature = "uart2")]
592            UART2: crate::UART2,
593            #[cfg(feature = "usb")]
594            USB: crate::USB,
595            #[cfg(feature = "wakeup")]
596            WAKEUP: crate::WAKEUP,
597            #[cfg(feature = "wdog")]
598            WDOG: crate::WDOG,
599        }
600    }
601}