sam3x8e-pac 0.1.6-dev

Peripheral Access Crate (PAC) for the Atmel SAM3X8E.
#![doc = include_str!("../README.md")]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![no_std]
#![doc = "Peripheral access API (generated using chiptool v0.1.0 (0f1a0f5 2025-12-10))"]
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum Interrupt {
    #[doc = "0 - Supply Controller"]
    SUPC = 0,
    #[doc = "1 - Reset Controller"]
    RSTC = 1,
    #[doc = "2 - Real-time Clock"]
    RTC = 2,
    #[doc = "3 - Real-time Timer"]
    RTT = 3,
    #[doc = "4 - Watchdog Timer"]
    WDG = 4,
    #[doc = "5 - PMC"]
    PMC = 5,
    #[doc = "6 - EFC0"]
    EFC0 = 6,
    #[doc = "7 - EFC1"]
    EFC1 = 7,
    #[doc = "8 - UART"]
    UART = 8,
    #[doc = "9 - Static Memory Controller / Synchronous Dynamic RAM Controller"]
    SMC_SDRAMC = 9,
    #[doc = "10 - SYnchronous Dynamic RAM Controller"]
    SDRAMC = 10,
    #[doc = "11 - PIOA"]
    PIOA = 11,
    #[doc = "12 - PIOB"]
    PIOB = 12,
    #[doc = "13 - PIOC"]
    PIOC = 13,
    #[doc = "14 - PIOD"]
    PIOD = 14,
    #[doc = "17 - USART0"]
    USART0 = 17,
    #[doc = "18 - USART1"]
    USART1 = 18,
    #[doc = "19 - USART2"]
    USART2 = 19,
    #[doc = "20 - USART3"]
    USART3 = 20,
    #[doc = "21 - HSMCI"]
    HSMCI = 21,
    #[doc = "22 - TWI0"]
    TWI0 = 22,
    #[doc = "23 - TWI1"]
    TWI1 = 23,
    #[doc = "24 - SPI0"]
    SPI0 = 24,
    #[doc = "25 - Serial Peripheral Interface 1"]
    SPI1 = 25,
    #[doc = "26 - SSC"]
    SSC = 26,
    #[doc = "27 - TC0"]
    TC0 = 27,
    #[doc = "28 - TC1"]
    TC1 = 28,
    #[doc = "29 - TC2"]
    TC2 = 29,
    #[doc = "30 - TC3"]
    TC3 = 30,
    #[doc = "31 - TC4"]
    TC4 = 31,
    #[doc = "32 - TC5"]
    TC5 = 32,
    #[doc = "33 - TC6"]
    TC6 = 33,
    #[doc = "34 - TC7"]
    TC7 = 34,
    #[doc = "35 - TC8"]
    TC8 = 35,
    #[doc = "36 - PWM"]
    PWM = 36,
    #[doc = "37 - ADC"]
    ADC = 37,
    #[doc = "38 - DACC"]
    DACC = 38,
    #[doc = "39 - DMAC"]
    DMAC = 39,
    #[doc = "40 - UOTGHS"]
    UOTGHS = 40,
    #[doc = "41 - TRNG"]
    TRNG = 41,
    #[doc = "42 - EMAC"]
    EMAC = 42,
    #[doc = "43 - CAN0"]
    CAN0 = 43,
    #[doc = "44 - CAN1"]
    CAN1 = 44,
}
unsafe impl cortex_m::interrupt::InterruptNumber for Interrupt {
    #[inline(always)]
    fn number(self) -> u16 {
        self as u16
    }
}
#[cfg(feature = "rt")]
mod _vectors;
#[doc = "High Speed MultiMedia Card Interface"]
pub const HSMCI: hsmci::Hsmci = unsafe { hsmci::Hsmci::from_ptr(0x4000_0000usize as _) };
#[doc = "Synchronous Serial Controller"]
pub const SSC: ssc::Ssc = unsafe { ssc::Ssc::from_ptr(0x4000_4000usize as _) };
#[doc = "Serial Peripheral Interface 0"]
pub const SPI0: spi0::Spi0 = unsafe { spi0::Spi0::from_ptr(0x4000_8000usize as _) };
#[doc = "Timer Counter 0"]
pub const TC0: tc::Tc = unsafe { tc::Tc::from_ptr(0x4008_0000usize as _) };
#[doc = "Timer Counter 1"]
pub const TC1: tc::Tc = unsafe { tc::Tc::from_ptr(0x4008_4000usize as _) };
#[doc = "Timer Counter 2"]
pub const TC2: tc::Tc = unsafe { tc::Tc::from_ptr(0x4008_8000usize as _) };
#[doc = "Two-wire Interface 0"]
pub const TWI0: twi::Twi = unsafe { twi::Twi::from_ptr(0x4008_c000usize as _) };
#[doc = "Two-wire Interface 1"]
pub const TWI1: twi::Twi = unsafe { twi::Twi::from_ptr(0x4009_0000usize as _) };
#[doc = "Pulse Width Modulation Controller"]
pub const PWM: pwm::Pwm = unsafe { pwm::Pwm::from_ptr(0x4009_4000usize as _) };
#[doc = "Universal Synchronous Asynchronous Receiver Transmitter 0"]
pub const USART0: usart::Usart = unsafe { usart::Usart::from_ptr(0x4009_8000usize as _) };
#[doc = "Universal Synchronous Asynchronous Receiver Transmitter 1"]
pub const USART1: usart::Usart = unsafe { usart::Usart::from_ptr(0x4009_c000usize as _) };
#[doc = "Universal Synchronous Asynchronous Receiver Transmitter 2"]
pub const USART2: usart::Usart = unsafe { usart::Usart::from_ptr(0x400a_0000usize as _) };
#[doc = "Universal Synchronous Asynchronous Receiver Transmitter 3"]
pub const USART3: usart::Usart = unsafe { usart::Usart::from_ptr(0x400a_4000usize as _) };
#[doc = "USB On-The-Go Interface"]
pub const UOTGHS: uotghs::Uotghs = unsafe { uotghs::Uotghs::from_ptr(0x400a_c000usize as _) };
#[doc = "Ethernet MAC 10/100"]
pub const EMAC: emac::Emac = unsafe { emac::Emac::from_ptr(0x400b_0000usize as _) };
#[doc = "Controller Area Network 0"]
pub const CAN0: can::Can = unsafe { can::Can::from_ptr(0x400b_4000usize as _) };
#[doc = "Controller Area Network 1"]
pub const CAN1: can::Can = unsafe { can::Can::from_ptr(0x400b_8000usize as _) };
#[doc = "True Random Number Generator"]
pub const TRNG: trng::Trng = unsafe { trng::Trng::from_ptr(0x400b_c000usize as _) };
#[doc = "Analog-to-Digital Converter"]
pub const ADC: adc::Adc = unsafe { adc::Adc::from_ptr(0x400c_0000usize as _) };
#[doc = "DMA Controller"]
pub const DMAC: dmac::Dmac = unsafe { dmac::Dmac::from_ptr(0x400c_4000usize as _) };
#[doc = "Digital-to-Analog Converter Controller"]
pub const DACC: dacc::Dacc = unsafe { dacc::Dacc::from_ptr(0x400c_8000usize as _) };
#[doc = "Static Memory Controller"]
pub const SMC: smc::Smc = unsafe { smc::Smc::from_ptr(0x400e_0000usize as _) };
#[doc = "AHB Bus Matrix"]
pub const MATRIX: matrix::Matrix = unsafe { matrix::Matrix::from_ptr(0x400e_0400usize as _) };
#[doc = "Power Management Controller"]
pub const PMC: pmc::Pmc = unsafe { pmc::Pmc::from_ptr(0x400e_0600usize as _) };
#[doc = "Universal Asynchronous Receiver Transmitter"]
pub const UART: uart::Uart = unsafe { uart::Uart::from_ptr(0x400e_0800usize as _) };
#[doc = "Chip Identifier"]
pub const CHIPID: chipid::Chipid = unsafe { chipid::Chipid::from_ptr(0x400e_0940usize as _) };
#[doc = "Embedded Flash Controller 0"]
pub const EFC0: efc::Efc = unsafe { efc::Efc::from_ptr(0x400e_0a00usize as _) };
#[doc = "Embedded Flash Controller 1"]
pub const EFC1: efc::Efc = unsafe { efc::Efc::from_ptr(0x400e_0c00usize as _) };
#[doc = "Parallel Input/Output Controller A"]
pub const PIOA: pio::Pio = unsafe { pio::Pio::from_ptr(0x400e_0e00usize as _) };
#[doc = "Parallel Input/Output Controller B"]
pub const PIOB: pio::Pio = unsafe { pio::Pio::from_ptr(0x400e_1000usize as _) };
#[doc = "Parallel Input/Output Controller C"]
pub const PIOC: pio::Pio = unsafe { pio::Pio::from_ptr(0x400e_1200usize as _) };
#[doc = "Parallel Input/Output Controller D"]
pub const PIOD: pio::Pio = unsafe { pio::Pio::from_ptr(0x400e_1400usize as _) };
#[doc = "Reset Controller"]
pub const RSTC: rstc::Rstc = unsafe { rstc::Rstc::from_ptr(0x400e_1a00usize as _) };
#[doc = "Supply Controller"]
pub const SUPC: supc::Supc = unsafe { supc::Supc::from_ptr(0x400e_1a10usize as _) };
#[doc = "Real-time Timer"]
pub const RTT: rtt::Rtt = unsafe { rtt::Rtt::from_ptr(0x400e_1a30usize as _) };
#[doc = "Watchdog Timer"]
pub const WDT: wdt::Wdt = unsafe { wdt::Wdt::from_ptr(0x400e_1a50usize as _) };
#[doc = "Real-time Clock"]
pub const RTC: rtc::Rtc = unsafe { rtc::Rtc::from_ptr(0x400e_1a60usize as _) };
#[doc = "General Purpose Backup Registers"]
pub const GPBR: gpbr::Gpbr = unsafe { gpbr::Gpbr::from_ptr(0x400e_1a90usize as _) };
#[doc = r" Number available in the NVIC for configuring priority"]
#[cfg(feature = "rt")]
pub const NVIC_PRIO_BITS: u8 = 4;
#[cfg(feature = "rt")]
pub use Interrupt as interrupt;
#[cfg(feature = "rt")]
pub use cortex_m_rt::interrupt;
pub mod adc;
pub mod can;
pub mod chipid;
pub mod common;
pub mod dacc;
pub mod dmac;
pub mod efc;
pub mod emac;
pub mod gpbr;
pub mod hsmci;
pub mod matrix;
pub mod pio;
pub mod pmc;
pub mod pwm;
pub mod rstc;
pub mod rtc;
pub mod rtt;
pub mod smc;
pub mod spi0;
pub mod ssc;
pub mod supc;
pub mod tc;
pub mod trng;
pub mod twi;
pub mod uart;
pub mod uotghs;
pub mod usart;
pub mod wdt;