#![allow(non_snake_case, non_upper_case_globals)]
#![allow(non_camel_case_types)]
use crate::{RORegister, RWRegister};
#[cfg(not(feature = "nosync"))]
use core::marker::PhantomData;
pub mod MCR {
pub mod DBF {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RESET {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TTCM {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ABOM {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod AWUM {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod NART {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RFLM {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXFP {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SLEEP {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod INRQ {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod MSR {
pub mod RX {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SAMP {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RXM {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXM {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SLAKI {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod WKUI {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ERRI {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SLAK {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod INAK {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TSR {
pub mod LOW2 {
pub const offset: u32 = 31;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod LOW1 {
pub const offset: u32 = 30;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod LOW0 {
pub const offset: u32 = 29;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TME2 {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TME1 {
pub const offset: u32 = 27;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TME0 {
pub const offset: u32 = 26;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CODE {
pub const offset: u32 = 24;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ABRQ2 {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TERR2 {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ALST2 {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXOK2 {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RQCP2 {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ABRQ1 {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TERR1 {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ALST1 {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXOK1 {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RQCP1 {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ABRQ0 {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TERR0 {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ALST0 {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TXOK0 {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RQCP0 {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod RF0R {
pub mod RFOM {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {
pub const Release: u32 = 0b1;
}
pub mod RW {}
}
pub mod FOVR {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {
pub const NoOverrun: u32 = 0b0;
pub const Overrun: u32 = 0b1;
}
pub mod W {
pub const Clear: u32 = 0b1;
}
pub mod RW {}
}
pub mod FULL {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {
pub const NotFull: u32 = 0b0;
pub const Full: u32 = 0b1;
}
pub use super::FOVR::W;
pub mod RW {}
}
pub mod FMP {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod RF1R {
pub use super::RF0R::FMP;
pub use super::RF0R::FOVR;
pub use super::RF0R::FULL;
pub use super::RF0R::RFOM;
}
pub mod IER {
pub mod SLKIE {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod WKUIE {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod ERRIE {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod LECIE {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod BOFIE {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod EPVIE {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod EWGIE {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod FOVIE1 {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod FFIE1 {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod FMPIE1 {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod FOVIE0 {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod FFIE0 {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::FFIE1::RW;
}
pub mod FMPIE0 {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod TMEIE {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
}
pub mod ESR {
pub mod REC {
pub const offset: u32 = 24;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TEC {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod LEC {
pub const offset: u32 = 4;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const NoError: u32 = 0b000;
pub const Stuff: u32 = 0b001;
pub const Form: u32 = 0b010;
pub const Ack: u32 = 0b011;
pub const BitRecessive: u32 = 0b100;
pub const BitDominant: u32 = 0b101;
pub const Crc: u32 = 0b110;
pub const Custom: u32 = 0b111;
}
}
pub mod BOFF {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod EPVF {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod EWGF {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod BTR {
pub mod SILM {
pub const offset: u32 = 31;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Normal: u32 = 0b0;
pub const Silent: u32 = 0b1;
}
}
pub mod LBKM {
pub const offset: u32 = 30;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod SJW {
pub const offset: u32 = 24;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TS2 {
pub const offset: u32 = 20;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TS1 {
pub const offset: u32 = 16;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BRP {
pub const offset: u32 = 0;
pub const mask: u32 = 0x3ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod FMR {
pub mod FINIT {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod FM1R {
pub mod FBM0 {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FBM1 {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FBM2 {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FBM3 {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FBM4 {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FBM5 {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FBM6 {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FBM7 {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FBM8 {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FBM9 {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FBM10 {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FBM11 {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FBM12 {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FBM13 {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod FS1R {
pub mod FSC0 {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FSC1 {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FSC2 {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FSC3 {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FSC4 {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FSC5 {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FSC6 {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FSC7 {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FSC8 {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FSC9 {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FSC10 {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FSC11 {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FSC12 {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FSC13 {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod FFA1R {
pub mod FFA0 {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FFA1 {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FFA2 {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FFA3 {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FFA4 {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FFA5 {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FFA6 {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FFA7 {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FFA8 {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FFA9 {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FFA10 {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FFA11 {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FFA12 {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FFA13 {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod FA1R {
pub mod FACT0 {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FACT1 {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FACT2 {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FACT3 {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FACT4 {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FACT5 {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FACT6 {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FACT7 {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FACT8 {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FACT9 {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FACT10 {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FACT11 {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FACT12 {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FACT13 {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TIR0 {
pub mod STID {
pub const offset: u32 = 21;
pub const mask: u32 = 0x7ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod EXID {
pub const offset: u32 = 3;
pub const mask: u32 = 0x3ffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod IDE {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Standard: u32 = 0b0;
pub const Extended: u32 = 0b1;
}
}
pub mod RTR {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Data: u32 = 0b0;
pub const Remote: u32 = 0b1;
}
}
pub mod TXRQ {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TDTR0 {
pub mod TIME {
pub const offset: u32 = 16;
pub const mask: u32 = 0xffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TGT {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DLC {
pub const offset: u32 = 0;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TDLR0 {
pub mod DATA3 {
pub const offset: u32 = 24;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DATA2 {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DATA1 {
pub const offset: u32 = 8;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DATA0 {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TDHR0 {
pub mod DATA7 {
pub const offset: u32 = 24;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DATA6 {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DATA5 {
pub const offset: u32 = 8;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DATA4 {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod TIR1 {
pub use super::TIR0::EXID;
pub use super::TIR0::IDE;
pub use super::TIR0::RTR;
pub use super::TIR0::STID;
pub use super::TIR0::TXRQ;
}
pub mod TDTR1 {
pub use super::TDTR0::DLC;
pub use super::TDTR0::TGT;
pub use super::TDTR0::TIME;
}
pub mod TDLR1 {
pub use super::TDLR0::DATA0;
pub use super::TDLR0::DATA1;
pub use super::TDLR0::DATA2;
pub use super::TDLR0::DATA3;
}
pub mod TDHR1 {
pub use super::TDHR0::DATA4;
pub use super::TDHR0::DATA5;
pub use super::TDHR0::DATA6;
pub use super::TDHR0::DATA7;
}
pub mod TIR2 {
pub use super::TIR0::EXID;
pub use super::TIR0::IDE;
pub use super::TIR0::RTR;
pub use super::TIR0::STID;
pub use super::TIR0::TXRQ;
}
pub mod TDTR2 {
pub use super::TDTR0::DLC;
pub use super::TDTR0::TGT;
pub use super::TDTR0::TIME;
}
pub mod TDLR2 {
pub use super::TDLR0::DATA0;
pub use super::TDLR0::DATA1;
pub use super::TDLR0::DATA2;
pub use super::TDLR0::DATA3;
}
pub mod TDHR2 {
pub use super::TDHR0::DATA4;
pub use super::TDHR0::DATA5;
pub use super::TDHR0::DATA6;
pub use super::TDHR0::DATA7;
}
pub mod RIR0 {
pub mod STID {
pub const offset: u32 = 21;
pub const mask: u32 = 0x7ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod EXID {
pub const offset: u32 = 3;
pub const mask: u32 = 0x3ffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod IDE {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {
pub const Standard: u32 = 0b0;
pub const Extended: u32 = 0b1;
}
pub mod W {}
pub mod RW {}
}
pub mod RTR {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {
pub const Data: u32 = 0b0;
pub const Remote: u32 = 0b1;
}
pub mod W {}
pub mod RW {}
}
}
pub mod RDTR0 {
pub mod TIME {
pub const offset: u32 = 16;
pub const mask: u32 = 0xffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FMI {
pub const offset: u32 = 8;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DLC {
pub const offset: u32 = 0;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod RDLR0 {
pub mod DATA3 {
pub const offset: u32 = 24;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DATA2 {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DATA1 {
pub const offset: u32 = 8;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DATA0 {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod RDHR0 {
pub mod DATA7 {
pub const offset: u32 = 24;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DATA6 {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DATA5 {
pub const offset: u32 = 8;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DATA4 {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod RIR1 {
pub use super::RIR0::EXID;
pub use super::RIR0::IDE;
pub use super::RIR0::RTR;
pub use super::RIR0::STID;
}
pub mod RDTR1 {
pub use super::RDTR0::DLC;
pub use super::RDTR0::FMI;
pub use super::RDTR0::TIME;
}
pub mod RDLR1 {
pub use super::RDLR0::DATA0;
pub use super::RDLR0::DATA1;
pub use super::RDLR0::DATA2;
pub use super::RDLR0::DATA3;
}
pub mod RDHR1 {
pub use super::RDHR0::DATA4;
pub use super::RDHR0::DATA5;
pub use super::RDHR0::DATA6;
pub use super::RDHR0::DATA7;
}
pub mod FR10 {
pub mod FB {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod FR20 {
pub use super::FR10::FB;
}
pub mod FR11 {
pub use super::FR10::FB;
}
pub mod FR21 {
pub use super::FR10::FB;
}
pub mod FR12 {
pub use super::FR10::FB;
}
pub mod FR22 {
pub use super::FR10::FB;
}
pub mod FR13 {
pub use super::FR10::FB;
}
pub mod FR23 {
pub use super::FR10::FB;
}
pub mod FR14 {
pub use super::FR10::FB;
}
pub mod FR24 {
pub use super::FR10::FB;
}
pub mod FR15 {
pub use super::FR10::FB;
}
pub mod FR25 {
pub use super::FR10::FB;
}
pub mod FR16 {
pub use super::FR10::FB;
}
pub mod FR26 {
pub use super::FR10::FB;
}
pub mod FR17 {
pub use super::FR10::FB;
}
pub mod FR27 {
pub use super::FR10::FB;
}
pub mod FR18 {
pub use super::FR10::FB;
}
pub mod FR28 {
pub use super::FR10::FB;
}
pub mod FR19 {
pub use super::FR10::FB;
}
pub mod FR29 {
pub use super::FR10::FB;
}
pub mod FR110 {
pub use super::FR10::FB;
}
pub mod FR210 {
pub use super::FR10::FB;
}
pub mod FR111 {
pub use super::FR10::FB;
}
pub mod FR211 {
pub use super::FR10::FB;
}
pub mod FR112 {
pub use super::FR10::FB;
}
pub mod FR212 {
pub use super::FR10::FB;
}
pub mod FR113 {
pub use super::FR10::FB;
}
pub mod FR213 {
pub use super::FR10::FB;
}
#[repr(C)]
pub struct RegisterBlock {
pub MCR: RWRegister<u32>,
pub MSR: RWRegister<u32>,
pub TSR: RWRegister<u32>,
pub RF0R: RWRegister<u32>,
pub RF1R: RWRegister<u32>,
pub IER: RWRegister<u32>,
pub ESR: RWRegister<u32>,
pub BTR: RWRegister<u32>,
_reserved1: [u8; 352],
pub TIR0: RWRegister<u32>,
pub TDTR0: RWRegister<u32>,
pub TDLR0: RWRegister<u32>,
pub TDHR0: RWRegister<u32>,
pub TIR1: RWRegister<u32>,
pub TDTR1: RWRegister<u32>,
pub TDLR1: RWRegister<u32>,
pub TDHR1: RWRegister<u32>,
pub TIR2: RWRegister<u32>,
pub TDTR2: RWRegister<u32>,
pub TDLR2: RWRegister<u32>,
pub TDHR2: RWRegister<u32>,
pub RIR0: RORegister<u32>,
pub RDTR0: RORegister<u32>,
pub RDLR0: RORegister<u32>,
pub RDHR0: RORegister<u32>,
pub RIR1: RORegister<u32>,
pub RDTR1: RORegister<u32>,
pub RDLR1: RORegister<u32>,
pub RDHR1: RORegister<u32>,
_reserved2: [u8; 48],
pub FMR: RWRegister<u32>,
pub FM1R: RWRegister<u32>,
_reserved3: [u8; 4],
pub FS1R: RWRegister<u32>,
_reserved4: [u8; 4],
pub FFA1R: RWRegister<u32>,
_reserved5: [u8; 4],
pub FA1R: RWRegister<u32>,
_reserved6: [u8; 32],
pub FR10: RWRegister<u32>,
pub FR20: RWRegister<u32>,
pub FR11: RWRegister<u32>,
pub FR21: RWRegister<u32>,
pub FR12: RWRegister<u32>,
pub FR22: RWRegister<u32>,
pub FR13: RWRegister<u32>,
pub FR23: RWRegister<u32>,
pub FR14: RWRegister<u32>,
pub FR24: RWRegister<u32>,
pub FR15: RWRegister<u32>,
pub FR25: RWRegister<u32>,
pub FR16: RWRegister<u32>,
pub FR26: RWRegister<u32>,
pub FR17: RWRegister<u32>,
pub FR27: RWRegister<u32>,
pub FR18: RWRegister<u32>,
pub FR28: RWRegister<u32>,
pub FR19: RWRegister<u32>,
pub FR29: RWRegister<u32>,
pub FR110: RWRegister<u32>,
pub FR210: RWRegister<u32>,
pub FR111: RWRegister<u32>,
pub FR211: RWRegister<u32>,
pub FR112: RWRegister<u32>,
pub FR212: RWRegister<u32>,
pub FR113: RWRegister<u32>,
pub FR213: RWRegister<u32>,
}
pub struct ResetValues {
pub MCR: u32,
pub MSR: u32,
pub TSR: u32,
pub RF0R: u32,
pub RF1R: u32,
pub IER: u32,
pub ESR: u32,
pub BTR: u32,
pub TIR0: u32,
pub TDTR0: u32,
pub TDLR0: u32,
pub TDHR0: u32,
pub TIR1: u32,
pub TDTR1: u32,
pub TDLR1: u32,
pub TDHR1: u32,
pub TIR2: u32,
pub TDTR2: u32,
pub TDLR2: u32,
pub TDHR2: u32,
pub RIR0: u32,
pub RDTR0: u32,
pub RDLR0: u32,
pub RDHR0: u32,
pub RIR1: u32,
pub RDTR1: u32,
pub RDLR1: u32,
pub RDHR1: u32,
pub FMR: u32,
pub FM1R: u32,
pub FS1R: u32,
pub FFA1R: u32,
pub FA1R: u32,
pub FR10: u32,
pub FR20: u32,
pub FR11: u32,
pub FR21: u32,
pub FR12: u32,
pub FR22: u32,
pub FR13: u32,
pub FR23: u32,
pub FR14: u32,
pub FR24: u32,
pub FR15: u32,
pub FR25: u32,
pub FR16: u32,
pub FR26: u32,
pub FR17: u32,
pub FR27: u32,
pub FR18: u32,
pub FR28: u32,
pub FR19: u32,
pub FR29: u32,
pub FR110: u32,
pub FR210: u32,
pub FR111: u32,
pub FR211: u32,
pub FR112: u32,
pub FR212: u32,
pub FR113: u32,
pub FR213: u32,
}
#[cfg(not(feature = "nosync"))]
pub struct Instance {
pub(crate) addr: u32,
pub(crate) _marker: PhantomData<*const RegisterBlock>,
}
#[cfg(not(feature = "nosync"))]
impl ::core::ops::Deref for Instance {
type Target = RegisterBlock;
#[inline(always)]
fn deref(&self) -> &RegisterBlock {
unsafe { &*(self.addr as *const _) }
}
}
#[cfg(feature = "rtic")]
unsafe impl Send for Instance {}
pub mod CAN1 {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x40006400,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
MCR: 0x00000000,
MSR: 0x00000000,
TSR: 0x00000000,
RF0R: 0x00000000,
RF1R: 0x00000000,
IER: 0x00000000,
ESR: 0x00000000,
BTR: 0x00000000,
FMR: 0x00000000,
FM1R: 0x00000000,
FS1R: 0x00000000,
FFA1R: 0x00000000,
FA1R: 0x00000000,
TIR0: 0x00000000,
TDTR0: 0x00000000,
TDLR0: 0x00000000,
TDHR0: 0x00000000,
TIR1: 0x00000000,
TDTR1: 0x00000000,
TDLR1: 0x00000000,
TDHR1: 0x00000000,
TIR2: 0x00000000,
TDTR2: 0x00000000,
TDLR2: 0x00000000,
TDHR2: 0x00000000,
RIR0: 0x00000000,
RDTR0: 0x00000000,
RDLR0: 0x00000000,
RDHR0: 0x00000000,
RIR1: 0x00000000,
RDTR1: 0x00000000,
RDLR1: 0x00000000,
RDHR1: 0x00000000,
FR10: 0x00000000,
FR20: 0x00000000,
FR11: 0x00000000,
FR21: 0x00000000,
FR12: 0x00000000,
FR22: 0x00000000,
FR13: 0x00000000,
FR23: 0x00000000,
FR14: 0x00000000,
FR24: 0x00000000,
FR15: 0x00000000,
FR25: 0x00000000,
FR16: 0x00000000,
FR26: 0x00000000,
FR17: 0x00000000,
FR27: 0x00000000,
FR18: 0x00000000,
FR28: 0x00000000,
FR19: 0x00000000,
FR29: 0x00000000,
FR110: 0x00000000,
FR210: 0x00000000,
FR111: 0x00000000,
FR211: 0x00000000,
FR112: 0x00000000,
FR212: 0x00000000,
FR113: 0x00000000,
FR213: 0x00000000,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut CAN1_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if CAN1_TAKEN {
None
} else {
CAN1_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if CAN1_TAKEN && inst.addr == INSTANCE.addr {
CAN1_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
CAN1_TAKEN = true;
INSTANCE
}
}
pub const CAN1: *const RegisterBlock = 0x40006400 as *const _;
pub mod CAN2 {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x40006800,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
MCR: 0x00000000,
MSR: 0x00000000,
TSR: 0x00000000,
RF0R: 0x00000000,
RF1R: 0x00000000,
IER: 0x00000000,
ESR: 0x00000000,
BTR: 0x00000000,
FMR: 0x00000000,
FM1R: 0x00000000,
FS1R: 0x00000000,
FFA1R: 0x00000000,
FA1R: 0x00000000,
TIR0: 0x00000000,
TDTR0: 0x00000000,
TDLR0: 0x00000000,
TDHR0: 0x00000000,
TIR1: 0x00000000,
TDTR1: 0x00000000,
TDLR1: 0x00000000,
TDHR1: 0x00000000,
TIR2: 0x00000000,
TDTR2: 0x00000000,
TDLR2: 0x00000000,
TDHR2: 0x00000000,
RIR0: 0x00000000,
RDTR0: 0x00000000,
RDLR0: 0x00000000,
RDHR0: 0x00000000,
RIR1: 0x00000000,
RDTR1: 0x00000000,
RDLR1: 0x00000000,
RDHR1: 0x00000000,
FR10: 0x00000000,
FR20: 0x00000000,
FR11: 0x00000000,
FR21: 0x00000000,
FR12: 0x00000000,
FR22: 0x00000000,
FR13: 0x00000000,
FR23: 0x00000000,
FR14: 0x00000000,
FR24: 0x00000000,
FR15: 0x00000000,
FR25: 0x00000000,
FR16: 0x00000000,
FR26: 0x00000000,
FR17: 0x00000000,
FR27: 0x00000000,
FR18: 0x00000000,
FR28: 0x00000000,
FR19: 0x00000000,
FR29: 0x00000000,
FR110: 0x00000000,
FR210: 0x00000000,
FR111: 0x00000000,
FR211: 0x00000000,
FR112: 0x00000000,
FR212: 0x00000000,
FR113: 0x00000000,
FR213: 0x00000000,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut CAN2_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if CAN2_TAKEN {
None
} else {
CAN2_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if CAN2_TAKEN && inst.addr == INSTANCE.addr {
CAN2_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
CAN2_TAKEN = true;
INSTANCE
}
}
pub const CAN2: *const RegisterBlock = 0x40006800 as *const _;