#![allow(non_snake_case, non_upper_case_globals)]
#![allow(non_camel_case_types)]
use crate::{RORegister, RWRegister, UnsafeWORegister};
#[cfg(not(feature = "nosync"))]
use core::marker::PhantomData;
pub mod ACTLR {
pub mod DISFOLD {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DISFOLD_0: u32 = 0b0;
}
}
pub mod FPEXCODIS {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FPEXCODIS_0: u32 = 0b0;
pub const FPEXCODIS_1: u32 = 0b1;
}
}
pub mod DISRAMODE {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DISRAMODE_0: u32 = 0b0;
pub const DISRAMODE_1: u32 = 0b1;
}
}
pub mod DISITMATBFLUSH {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DISITMATBFLUSH_1: u32 = 0b1;
}
}
pub mod DISBTACREAD {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DISBTACREAD_0: u32 = 0b0;
pub const DISBTACREAD_1: u32 = 0b1;
}
}
pub mod DISBTACALLOC {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DISBTACALLOC_0: u32 = 0b0;
pub const DISBTACALLOC_1: u32 = 0b1;
}
}
pub mod DISCRITAXIRUR {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DISCRITAXIRUR_0: u32 = 0b0;
pub const DISCRITAXIRUR_1: u32 = 0b1;
}
}
pub mod DISDI {
pub const offset: u32 = 16;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DISDI_0: u32 = 0b00000;
pub const DISDI_1: u32 = 0b00001;
}
}
pub mod DISISSCH1 {
pub const offset: u32 = 21;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DISISSCH1_0: u32 = 0b00000;
pub const DISISSCH1_1: u32 = 0b00001;
}
}
pub mod DISDYNADD {
pub const offset: u32 = 26;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DISDYNADD_0: u32 = 0b0;
pub const DISDYNADD_1: u32 = 0b1;
}
}
pub mod DISCRITAXIRUW {
pub const offset: u32 = 27;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DISCRITAXIRUW_0: u32 = 0b0;
pub const DISCRITAXIRUW_1: u32 = 0b1;
}
}
pub mod DISFPUISSOPT {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DISFPUISSOPT_0: u32 = 0b0;
}
}
}
pub mod CPUID {
pub mod REVISION {
pub const offset: u32 = 0;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PARTNO {
pub const offset: u32 = 4;
pub const mask: u32 = 0xfff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ARCHITECTURE {
pub const offset: u32 = 16;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod VARIANT {
pub const offset: u32 = 20;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod IMPLEMENTER {
pub const offset: u32 = 24;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ICSR {
pub mod VECTACTIVE {
pub const offset: u32 = 0;
pub const mask: u32 = 0x1ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RETTOBASE {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const RETTOBASE_0: u32 = 0b0;
pub const RETTOBASE_1: u32 = 0b1;
}
}
pub mod VECTPENDING {
pub const offset: u32 = 12;
pub const mask: u32 = 0x1ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ISRPENDING {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const ISRPENDING_0: u32 = 0b0;
pub const ISRPENDING_1: u32 = 0b1;
}
}
pub mod PENDSTCLR {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PENDSTCLR_0: u32 = 0b0;
pub const PENDSTCLR_1: u32 = 0b1;
}
}
pub mod PENDSTSET {
pub const offset: u32 = 26;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PENDSTSET_0: u32 = 0b0;
pub const PENDSTSET_1: u32 = 0b1;
}
}
pub mod PENDSVCLR {
pub const offset: u32 = 27;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PENDSVCLR_0: u32 = 0b0;
pub const PENDSVCLR_1: u32 = 0b1;
}
}
pub mod PENDSVSET {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PENDSVSET_0: u32 = 0b0;
pub const PENDSVSET_1: u32 = 0b1;
}
}
pub mod NMIPENDSET {
pub const offset: u32 = 31;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const NMIPENDSET_0: u32 = 0b0;
pub const NMIPENDSET_1: u32 = 0b1;
}
}
}
pub mod VTOR {
pub mod TBLOFF {
pub const offset: u32 = 7;
pub const mask: u32 = 0x1ffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod AIRCR {
pub mod VECTRESET {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const VECTRESET_0: u32 = 0b0;
pub const VECTRESET_1: u32 = 0b1;
}
}
pub mod VECTCLRACTIVE {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const VECTCLRACTIVE_0: u32 = 0b0;
pub const VECTCLRACTIVE_1: u32 = 0b1;
}
}
pub mod SYSRESETREQ {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SYSRESETREQ_0: u32 = 0b0;
pub const SYSRESETREQ_1: u32 = 0b1;
}
}
pub mod PRIGROUP {
pub const offset: u32 = 8;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ENDIANNESS {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const ENDIANNESS_0: u32 = 0b0;
pub const ENDIANNESS_1: u32 = 0b1;
}
}
pub mod VECTKEY {
pub const offset: u32 = 16;
pub const mask: u32 = 0xffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SCR {
pub mod SLEEPONEXIT {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SLEEPONEXIT_0: u32 = 0b0;
pub const SLEEPONEXIT_1: u32 = 0b1;
}
}
pub mod SLEEPDEEP {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SLEEPDEEP_0: u32 = 0b0;
pub const SLEEPDEEP_1: u32 = 0b1;
}
}
pub mod SEVONPEND {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SEVONPEND_0: u32 = 0b0;
pub const SEVONPEND_1: u32 = 0b1;
}
}
}
pub mod CCR {
pub mod NONBASETHRDENA {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const NONBASETHRDENA_0: u32 = 0b0;
pub const NONBASETHRDENA_1: u32 = 0b1;
}
}
pub mod USERSETMPEND {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const USERSETMPEND_0: u32 = 0b0;
pub const USERSETMPEND_1: u32 = 0b1;
}
}
pub mod UNALIGN_TRP {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const UNALIGN_TRP_0: u32 = 0b0;
pub const UNALIGN_TRP_1: u32 = 0b1;
}
}
pub mod DIV_0_TRP {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DIV_0_TRP_0: u32 = 0b0;
pub const DIV_0_TRP_1: u32 = 0b1;
}
}
pub mod BFHFNMIGN {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const BFHFNMIGN_0: u32 = 0b0;
pub const BFHFNMIGN_1: u32 = 0b1;
}
}
pub mod STKALIGN {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const STKALIGN_0: u32 = 0b0;
pub const STKALIGN_1: u32 = 0b1;
}
}
pub mod DC {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DC_0: u32 = 0b0;
pub const DC_1: u32 = 0b1;
}
}
pub mod IC {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const IC_0: u32 = 0b0;
pub const IC_1: u32 = 0b1;
}
}
pub mod BP {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SHPR1 {
pub mod PRI_4 {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PRI_5 {
pub const offset: u32 = 8;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PRI_6 {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SHPR2 {
pub mod PRI_11 {
pub const offset: u32 = 24;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SHPR3 {
pub mod PRI_14 {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PRI_15 {
pub const offset: u32 = 24;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SHCSR {
pub mod MEMFAULTACT {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const MEMFAULTACT_0: u32 = 0b0;
pub const MEMFAULTACT_1: u32 = 0b1;
}
}
pub mod BUSFAULTACT {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const BUSFAULTACT_0: u32 = 0b0;
pub const BUSFAULTACT_1: u32 = 0b1;
}
}
pub mod USGFAULTACT {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const USGFAULTACT_0: u32 = 0b0;
pub const USGFAULTACT_1: u32 = 0b1;
}
}
pub mod SVCALLACT {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SVCALLACT_0: u32 = 0b0;
pub const SVCALLACT_1: u32 = 0b1;
}
}
pub mod MONITORACT {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const MONITORACT_0: u32 = 0b0;
pub const MONITORACT_1: u32 = 0b1;
}
}
pub mod PENDSVACT {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PENDSVACT_0: u32 = 0b0;
pub const PENDSVACT_1: u32 = 0b1;
}
}
pub mod SYSTICKACT {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SYSTICKACT_0: u32 = 0b0;
pub const SYSTICKACT_1: u32 = 0b1;
}
}
pub mod USGFAULTPENDED {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const USGFAULTPENDED_0: u32 = 0b0;
pub const USGFAULTPENDED_1: u32 = 0b1;
}
}
pub mod MEMFAULTPENDED {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const MEMFAULTPENDED_0: u32 = 0b0;
pub const MEMFAULTPENDED_1: u32 = 0b1;
}
}
pub mod BUSFAULTPENDED {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const BUSFAULTPENDED_0: u32 = 0b0;
pub const BUSFAULTPENDED_1: u32 = 0b1;
}
}
pub mod SVCALLPENDED {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SVCALLPENDED_0: u32 = 0b0;
pub const SVCALLPENDED_1: u32 = 0b1;
}
}
pub mod MEMFAULTENA {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const MEMFAULTENA_0: u32 = 0b0;
pub const MEMFAULTENA_1: u32 = 0b1;
}
}
pub mod BUSFAULTENA {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const BUSFAULTENA_0: u32 = 0b0;
pub const BUSFAULTENA_1: u32 = 0b1;
}
}
pub mod USGFAULTENA {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const USGFAULTENA_0: u32 = 0b0;
pub const USGFAULTENA_1: u32 = 0b1;
}
}
}
pub mod CFSR {
pub mod IACCVIOL {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const IACCVIOL_0: u32 = 0b0;
pub const IACCVIOL_1: u32 = 0b1;
}
}
pub mod DACCVIOL {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DACCVIOL_0: u32 = 0b0;
pub const DACCVIOL_1: u32 = 0b1;
}
}
pub mod MUNSTKERR {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const MUNSTKERR_0: u32 = 0b0;
pub const MUNSTKERR_1: u32 = 0b1;
}
}
pub mod MSTKERR {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const MSTKERR_0: u32 = 0b0;
pub const MSTKERR_1: u32 = 0b1;
}
}
pub mod MLSPERR {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const MLSPERR_0: u32 = 0b0;
pub const MLSPERR_1: u32 = 0b1;
}
}
pub mod MMARVALID {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const MMARVALID_0: u32 = 0b0;
pub const MMARVALID_1: u32 = 0b1;
}
}
pub mod IBUSERR {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const IBUSERR_0: u32 = 0b0;
pub const IBUSERR_1: u32 = 0b1;
}
}
pub mod PRECISERR {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PRECISERR_0: u32 = 0b0;
pub const PRECISERR_1: u32 = 0b1;
}
}
pub mod IMPRECISERR {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const IMPRECISERR_0: u32 = 0b0;
pub const IMPRECISERR_1: u32 = 0b1;
}
}
pub mod UNSTKERR {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const UNSTKERR_0: u32 = 0b0;
pub const UNSTKERR_1: u32 = 0b1;
}
}
pub mod STKERR {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const STKERR_0: u32 = 0b0;
pub const STKERR_1: u32 = 0b1;
}
}
pub mod LSPERR {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const LSPERR_0: u32 = 0b0;
pub const LSPERR_1: u32 = 0b1;
}
}
pub mod BFARVALID {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const BFARVALID_0: u32 = 0b0;
pub const BFARVALID_1: u32 = 0b1;
}
}
pub mod UNDEFINSTR {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const UNDEFINSTR_0: u32 = 0b0;
pub const UNDEFINSTR_1: u32 = 0b1;
}
}
pub mod INVSTATE {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const INVSTATE_0: u32 = 0b0;
pub const INVSTATE_1: u32 = 0b1;
}
}
pub mod INVPC {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const INVPC_0: u32 = 0b0;
pub const INVPC_1: u32 = 0b1;
}
}
pub mod NOCP {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const NOCP_0: u32 = 0b0;
pub const NOCP_1: u32 = 0b1;
}
}
pub mod UNALIGNED {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const UNALIGNED_0: u32 = 0b0;
pub const UNALIGNED_1: u32 = 0b1;
}
}
pub mod DIVBYZERO {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DIVBYZERO_0: u32 = 0b0;
pub const DIVBYZERO_1: u32 = 0b1;
}
}
}
pub mod HFSR {
pub mod VECTTBL {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const VECTTBL_0: u32 = 0b0;
pub const VECTTBL_1: u32 = 0b1;
}
}
pub mod FORCED {
pub const offset: u32 = 30;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FORCED_0: u32 = 0b0;
pub const FORCED_1: u32 = 0b1;
}
}
pub mod DEBUGEVT {
pub const offset: u32 = 31;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DEBUGEVT_0: u32 = 0b0;
pub const DEBUGEVT_1: u32 = 0b1;
}
}
}
pub mod DFSR {
pub mod HALTED {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const HALTED_0: u32 = 0b0;
pub const HALTED_1: u32 = 0b1;
}
}
pub mod BKPT {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const BKPT_0: u32 = 0b0;
pub const BKPT_1: u32 = 0b1;
}
}
pub mod DWTTRAP {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DWTTRAP_0: u32 = 0b0;
pub const DWTTRAP_1: u32 = 0b1;
}
}
pub mod VCATCH {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const VCATCH_0: u32 = 0b0;
pub const VCATCH_1: u32 = 0b1;
}
}
pub mod EXTERNAL {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const EXTERNAL_0: u32 = 0b0;
pub const EXTERNAL_1: u32 = 0b1;
}
}
}
pub mod MMFAR {
pub mod ADDRESS {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod BFAR {
pub use super::MMFAR::ADDRESS;
}
pub mod ID_PFR0 {
pub mod STATE0 {
pub const offset: u32 = 0;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const STATE0_0: u32 = 0b0000;
pub const STATE0_1: u32 = 0b0001;
pub const STATE0_2: u32 = 0b0010;
pub const STATE0_3: u32 = 0b0011;
}
}
pub mod STATE1 {
pub const offset: u32 = 4;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const STATE1_0: u32 = 0b0000;
pub const STATE1_1: u32 = 0b0001;
}
}
pub mod STATE2 {
pub const offset: u32 = 8;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod STATE3 {
pub const offset: u32 = 12;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ID_PFR1 {
pub mod PROGMODEL {
pub const offset: u32 = 8;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PROGMODEL_0: u32 = 0b0000;
pub const PROGMODEL_2: u32 = 0b0010;
}
}
}
pub mod ID_DFR0 {
pub mod DEBUGMODEL {
pub const offset: u32 = 20;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DEBUGMODEL_0: u32 = 0b0000;
pub const DEBUGMODEL_1: u32 = 0b0001;
}
}
}
pub mod ID_AFR0 {
pub mod IMPLEMENTATION_DEFINED0 {
pub const offset: u32 = 0;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod IMPLEMENTATION_DEFINED1 {
pub const offset: u32 = 4;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod IMPLEMENTATION_DEFINED2 {
pub const offset: u32 = 8;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod IMPLEMENTATION_DEFINED3 {
pub const offset: u32 = 12;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ID_MMFR0 {
pub mod PMSASUPPORT {
pub const offset: u32 = 4;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PMSASUPPORT_0: u32 = 0b0000;
pub const PMSASUPPORT_1: u32 = 0b0001;
pub const PMSASUPPORT_2: u32 = 0b0010;
pub const PMSASUPPORT_3: u32 = 0b0011;
}
}
pub mod OUTERMOST_SHAREABILITY {
pub const offset: u32 = 8;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const OUTERMOST_SHAREABILITY_0: u32 = 0b0000;
pub const OUTERMOST_SHAREABILITY_1: u32 = 0b0001;
pub const OUTERMOST_SHAREABILITY_2: u32 = 0b0010;
pub const OUTERMOST_SHAREABILITY_3: u32 = 0b0011;
pub const OUTERMOST_SHAREABILITY_4: u32 = 0b0100;
pub const OUTERMOST_SHAREABILITY_5: u32 = 0b0101;
pub const OUTERMOST_SHAREABILITY_6: u32 = 0b0110;
pub const OUTERMOST_SHAREABILITY_7: u32 = 0b0111;
pub const OUTERMOST_SHAREABILITY_8: u32 = 0b1000;
pub const OUTERMOST_SHAREABILITY_9: u32 = 0b1001;
pub const OUTERMOST_SHAREABILITY_10: u32 = 0b1010;
pub const OUTERMOST_SHAREABILITY_11: u32 = 0b1011;
pub const OUTERMOST_SHAREABILITY_12: u32 = 0b1100;
pub const OUTERMOST_SHAREABILITY_13: u32 = 0b1101;
pub const OUTERMOST_SHAREABILITY_14: u32 = 0b1110;
pub const OUTERMOST_SHAREABILITY_15: u32 = 0b1111;
}
}
pub mod SHAREABILITY_LEVELS {
pub const offset: u32 = 12;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SHAREABILITY_LEVELS_0: u32 = 0b0000;
pub const SHAREABILITY_LEVELS_1: u32 = 0b0001;
}
}
pub mod TCM_SUPPORT {
pub const offset: u32 = 16;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const TCM_SUPPORT_0: u32 = 0b0000;
pub const TCM_SUPPORT_1: u32 = 0b0001;
pub const TCM_SUPPORT_2: u32 = 0b0010;
}
}
pub mod AUXILIARY_REGISTERS {
pub const offset: u32 = 20;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const AUXILIARY_REGISTERS_0: u32 = 0b0000;
pub const AUXILIARY_REGISTERS_1: u32 = 0b0001;
pub const AUXILIARY_REGISTERS_2: u32 = 0b0010;
}
}
}
pub mod ID_MMFR1 {
pub mod ID_MMFR1 {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ID_MMFR2 {
pub mod WFI_STALL {
pub const offset: u32 = 24;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const WFI_STALL_0: u32 = 0b0000;
pub const WFI_STALL_1: u32 = 0b0001;
}
}
}
pub mod ID_MMFR3 {
pub mod ID_MMFR3 {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ID_ISAR0 {
pub mod BITCOUNT_INSTRS {
pub const offset: u32 = 4;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const BITCOUNT_INSTRS_0: u32 = 0b0000;
pub const BITCOUNT_INSTRS_1: u32 = 0b0001;
}
}
pub mod BITFIELD_INSTRS {
pub const offset: u32 = 8;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const BITFIELD_INSTRS_0: u32 = 0b0000;
pub const BITFIELD_INSTRS_1: u32 = 0b0001;
}
}
pub mod CMPBRANCH_INSTRS {
pub const offset: u32 = 12;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CMPBRANCH_INSTRS_0: u32 = 0b0000;
pub const CMPBRANCH_INSTRS_1: u32 = 0b0001;
}
}
pub mod COPROC_INSTRS {
pub const offset: u32 = 16;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const COPROC_INSTRS_0: u32 = 0b0000;
pub const COPROC_INSTRS_1: u32 = 0b0001;
pub const COPROC_INSTRS_2: u32 = 0b0010;
pub const COPROC_INSTRS_3: u32 = 0b0011;
pub const COPROC_INSTRS_4: u32 = 0b0100;
}
}
pub mod DEBUG_INSTRS {
pub const offset: u32 = 20;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DEBUG_INSTRS_0: u32 = 0b0000;
pub const DEBUG_INSTRS_1: u32 = 0b0001;
}
}
pub mod DIVIDE_INSTRS {
pub const offset: u32 = 24;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DIVIDE_INSTRS_0: u32 = 0b0000;
pub const DIVIDE_INSTRS_1: u32 = 0b0001;
}
}
}
pub mod ID_ISAR1 {
pub mod EXTEND_INSTRS {
pub const offset: u32 = 12;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const EXTEND_INSTRS_0: u32 = 0b0000;
pub const EXTEND_INSTRS_1: u32 = 0b0001;
pub const EXTEND_INSTRS_2: u32 = 0b0010;
}
}
pub mod IFTHEN_INSTRS {
pub const offset: u32 = 16;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const IFTHEN_INSTRS_0: u32 = 0b0000;
pub const IFTHEN_INSTRS_1: u32 = 0b0001;
}
}
pub mod IMMEDIATE_INSTRS {
pub const offset: u32 = 20;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const IMMEDIATE_INSTRS_0: u32 = 0b0000;
pub const IMMEDIATE_INSTRS_1: u32 = 0b0001;
}
}
pub mod INTERWORK_INSTRS {
pub const offset: u32 = 24;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const INTERWORK_INSTRS_0: u32 = 0b0000;
pub const INTERWORK_INSTRS_1: u32 = 0b0001;
pub const INTERWORK_INSTRS_2: u32 = 0b0010;
pub const INTERWORK_INSTRS_3: u32 = 0b0011;
}
}
}
pub mod ID_ISAR2 {
pub mod LOADSTORE_INSTRS {
pub const offset: u32 = 0;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const LOADSTORE_INSTRS_0: u32 = 0b0000;
pub const LOADSTORE_INSTRS_1: u32 = 0b0001;
}
}
pub mod MEMHINT_INSTRS {
pub const offset: u32 = 4;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const MEMHINT_INSTRS_0: u32 = 0b0000;
pub const MEMHINT_INSTRS_1: u32 = 0b0001;
pub const MEMHINT_INSTRS_2: u32 = 0b0010;
pub const MEMHINT_INSTRS_3: u32 = 0b0011;
}
}
pub mod MULTIACCESSINT_INSTRS {
pub const offset: u32 = 8;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const MULTIACCESSINT_INSTRS_0: u32 = 0b0000;
pub const MULTIACCESSINT_INSTRS_1: u32 = 0b0001;
pub const MULTIACCESSINT_INSTRS_2: u32 = 0b0010;
}
}
pub mod MULT_INSTRS {
pub const offset: u32 = 12;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const MULT_INSTRS_0: u32 = 0b0000;
pub const MULT_INSTRS_1: u32 = 0b0001;
pub const MULT_INSTRS_2: u32 = 0b0010;
}
}
pub mod MULTS_INSTRS {
pub const offset: u32 = 16;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const MULTS_INSTRS_0: u32 = 0b0000;
pub const MULTS_INSTRS_1: u32 = 0b0001;
pub const MULTS_INSTRS_2: u32 = 0b0010;
pub const MULTS_INSTRS_3: u32 = 0b0011;
}
}
pub mod MULTU_INSTRS {
pub const offset: u32 = 20;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const MULTU_INSTRS_0: u32 = 0b0000;
pub const MULTU_INSTRS_1: u32 = 0b0001;
pub const MULTU_INSTRS_2: u32 = 0b0010;
}
}
pub mod REVERSAL_INSTRS {
pub const offset: u32 = 28;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const REVERSAL_INSTRS_0: u32 = 0b0000;
pub const REVERSAL_INSTRS_1: u32 = 0b0001;
pub const REVERSAL_INSTRS_2: u32 = 0b0010;
}
}
}
pub mod ID_ISAR3 {
pub mod SATURATE_INSTRS {
pub const offset: u32 = 0;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SATURATE_INSTRS_0: u32 = 0b0000;
pub const SATURATE_INSTRS_1: u32 = 0b0001;
}
}
pub mod SIMD_INSTRS {
pub const offset: u32 = 4;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SIMD_INSTRS_0: u32 = 0b0000;
pub const SIMD_INSTRS_1: u32 = 0b0001;
pub const SIMD_INSTRS_3: u32 = 0b0011;
}
}
pub mod SVC_INSTRS {
pub const offset: u32 = 8;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SVC_INSTRS_0: u32 = 0b0000;
pub const SVC_INSTRS_1: u32 = 0b0001;
}
}
pub mod SYNCHPRIM_INSTRS {
pub const offset: u32 = 12;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TABBRANCH_INSTRS {
pub const offset: u32 = 16;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const TABBRANCH_INSTRS_0: u32 = 0b0000;
pub const TABBRANCH_INSTRS_1: u32 = 0b0001;
}
}
pub mod THUMBCOPY_INSTRS {
pub const offset: u32 = 20;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const THUMBCOPY_INSTRS_0: u32 = 0b0000;
pub const THUMBCOPY_INSTRS_1: u32 = 0b0001;
}
}
pub mod TRUENOP_INSTRS {
pub const offset: u32 = 24;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const TRUENOP_INSTRS_0: u32 = 0b0000;
pub const TRUENOP_INSTRS_1: u32 = 0b0001;
}
}
}
pub mod ID_ISAR4 {
pub mod UNPRIV_INSTRS {
pub const offset: u32 = 0;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const UNPRIV_INSTRS_0: u32 = 0b0000;
pub const UNPRIV_INSTRS_1: u32 = 0b0001;
pub const UNPRIV_INSTRS_2: u32 = 0b0010;
}
}
pub mod WITHSHIFTS_INSTRS {
pub const offset: u32 = 4;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const WITHSHIFTS_INSTRS_0: u32 = 0b0000;
pub const WITHSHIFTS_INSTRS_1: u32 = 0b0001;
pub const WITHSHIFTS_INSTRS_3: u32 = 0b0011;
pub const WITHSHIFTS_INSTRS_4: u32 = 0b0100;
}
}
pub mod WRITEBACK_INSTRS {
pub const offset: u32 = 8;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const WRITEBACK_INSTRS_0: u32 = 0b0000;
pub const WRITEBACK_INSTRS_1: u32 = 0b0001;
}
}
pub mod BARRIER_INSTRS {
pub const offset: u32 = 16;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const BARRIER_INSTRS_0: u32 = 0b0000;
pub const BARRIER_INSTRS_1: u32 = 0b0001;
}
}
pub mod SYNCHPRIM_INSTRS_FRAC {
pub const offset: u32 = 20;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PSR_M_INSTRS {
pub const offset: u32 = 24;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PSR_M_INSTRS_0: u32 = 0b0000;
pub const PSR_M_INSTRS_1: u32 = 0b0001;
}
}
}
pub mod CLIDR {
pub mod CL1 {
pub const offset: u32 = 0;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CL1_0: u32 = 0b000;
pub const CL1_1: u32 = 0b001;
pub const CL1_2: u32 = 0b010;
pub const CL1_3: u32 = 0b011;
pub const CL1_4: u32 = 0b100;
}
}
pub mod CL2 {
pub const offset: u32 = 3;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CL2_0: u32 = 0b000;
pub const CL2_1: u32 = 0b001;
pub const CL2_2: u32 = 0b010;
pub const CL2_3: u32 = 0b011;
pub const CL2_4: u32 = 0b100;
}
}
pub mod CL3 {
pub const offset: u32 = 6;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CL3_0: u32 = 0b000;
pub const CL3_1: u32 = 0b001;
pub const CL3_2: u32 = 0b010;
pub const CL3_3: u32 = 0b011;
pub const CL3_4: u32 = 0b100;
}
}
pub mod CL4 {
pub const offset: u32 = 9;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CL4_0: u32 = 0b000;
pub const CL4_1: u32 = 0b001;
pub const CL4_2: u32 = 0b010;
pub const CL4_3: u32 = 0b011;
pub const CL4_4: u32 = 0b100;
}
}
pub mod CL5 {
pub const offset: u32 = 12;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CL5_0: u32 = 0b000;
pub const CL5_1: u32 = 0b001;
pub const CL5_2: u32 = 0b010;
pub const CL5_3: u32 = 0b011;
pub const CL5_4: u32 = 0b100;
}
}
pub mod CL6 {
pub const offset: u32 = 15;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CL6_0: u32 = 0b000;
pub const CL6_1: u32 = 0b001;
pub const CL6_2: u32 = 0b010;
pub const CL6_3: u32 = 0b011;
pub const CL6_4: u32 = 0b100;
}
}
pub mod CL7 {
pub const offset: u32 = 18;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CL7_0: u32 = 0b000;
pub const CL7_1: u32 = 0b001;
pub const CL7_2: u32 = 0b010;
pub const CL7_3: u32 = 0b011;
pub const CL7_4: u32 = 0b100;
}
}
pub mod LOUIS {
pub const offset: u32 = 21;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const LOUIS_0: u32 = 0b000;
pub const LOUIS_1: u32 = 0b001;
pub const LOUIS_2: u32 = 0b010;
pub const LOUIS_3: u32 = 0b011;
pub const LOUIS_4: u32 = 0b100;
pub const LOUIS_5: u32 = 0b101;
pub const LOUIS_6: u32 = 0b110;
pub const LOUIS_7: u32 = 0b111;
}
}
pub mod LOC {
pub const offset: u32 = 24;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const LOC_0: u32 = 0b000;
pub const LOC_1: u32 = 0b001;
pub const LOC_2: u32 = 0b010;
pub const LOC_3: u32 = 0b011;
pub const LOC_4: u32 = 0b100;
pub const LOC_5: u32 = 0b101;
pub const LOC_6: u32 = 0b110;
pub const LOC_7: u32 = 0b111;
}
}
pub mod LOU {
pub const offset: u32 = 27;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const LOU_0: u32 = 0b000;
pub const LOU_1: u32 = 0b001;
pub const LOU_2: u32 = 0b010;
pub const LOU_3: u32 = 0b011;
pub const LOU_4: u32 = 0b100;
pub const LOU_5: u32 = 0b101;
pub const LOU_6: u32 = 0b110;
pub const LOU_7: u32 = 0b111;
}
}
}
pub mod CTR {
pub mod IMINLINE {
pub const offset: u32 = 0;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DMINLINE {
pub const offset: u32 = 16;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ERG {
pub const offset: u32 = 20;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CWG {
pub const offset: u32 = 24;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FORMAT {
pub const offset: u32 = 29;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FORMAT_4: u32 = 0b100;
}
}
}
pub mod CCSIDR {
pub mod LINESIZE {
pub const offset: u32 = 0;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const LINESIZE_0: u32 = 0b000;
pub const LINESIZE_1: u32 = 0b001;
pub const LINESIZE_2: u32 = 0b010;
pub const LINESIZE_3: u32 = 0b011;
pub const LINESIZE_4: u32 = 0b100;
pub const LINESIZE_5: u32 = 0b101;
pub const LINESIZE_6: u32 = 0b110;
pub const LINESIZE_7: u32 = 0b111;
}
}
pub mod ASSOCIATIVITY {
pub const offset: u32 = 3;
pub const mask: u32 = 0x3ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod NUMSETS {
pub const offset: u32 = 13;
pub const mask: u32 = 0x7fff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod WA {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const WA_0: u32 = 0b0;
pub const WA_1: u32 = 0b1;
}
}
pub mod RA {
pub const offset: u32 = 29;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const RA_0: u32 = 0b0;
pub const RA_1: u32 = 0b1;
}
}
pub mod WB {
pub const offset: u32 = 30;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const WB_0: u32 = 0b0;
pub const WB_1: u32 = 0b1;
}
}
pub mod WT {
pub const offset: u32 = 31;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const WT_0: u32 = 0b0;
pub const WT_1: u32 = 0b1;
}
}
}
pub mod CSSELR {
pub mod IND {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const IND_0: u32 = 0b0;
pub const IND_1: u32 = 0b1;
}
}
pub mod LEVEL {
pub const offset: u32 = 1;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const LEVEL_0: u32 = 0b000;
pub const LEVEL_1: u32 = 0b001;
pub const LEVEL_2: u32 = 0b010;
pub const LEVEL_3: u32 = 0b011;
pub const LEVEL_4: u32 = 0b100;
pub const LEVEL_5: u32 = 0b101;
pub const LEVEL_6: u32 = 0b110;
}
}
}
pub mod CPACR {
pub mod CP0 {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CP0_0: u32 = 0b00;
pub const CP0_1: u32 = 0b01;
pub const CP0_3: u32 = 0b11;
}
}
pub mod CP1 {
pub const offset: u32 = 2;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CP1_0: u32 = 0b00;
pub const CP1_1: u32 = 0b01;
pub const CP1_3: u32 = 0b11;
}
}
pub mod CP2 {
pub const offset: u32 = 4;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CP2_0: u32 = 0b00;
pub const CP2_1: u32 = 0b01;
pub const CP2_3: u32 = 0b11;
}
}
pub mod CP3 {
pub const offset: u32 = 6;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CP3_0: u32 = 0b00;
pub const CP3_1: u32 = 0b01;
pub const CP3_3: u32 = 0b11;
}
}
pub mod CP4 {
pub const offset: u32 = 8;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CP4_0: u32 = 0b00;
pub const CP4_1: u32 = 0b01;
pub const CP4_3: u32 = 0b11;
}
}
pub mod CP5 {
pub const offset: u32 = 10;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CP5_0: u32 = 0b00;
pub const CP5_1: u32 = 0b01;
pub const CP5_3: u32 = 0b11;
}
}
pub mod CP6 {
pub const offset: u32 = 12;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CP6_0: u32 = 0b00;
pub const CP6_1: u32 = 0b01;
pub const CP6_3: u32 = 0b11;
}
}
pub mod CP7 {
pub const offset: u32 = 14;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CP7_0: u32 = 0b00;
pub const CP7_1: u32 = 0b01;
pub const CP7_3: u32 = 0b11;
}
}
pub mod CP10 {
pub const offset: u32 = 20;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CP10_0: u32 = 0b00;
pub const CP10_1: u32 = 0b01;
pub const CP10_3: u32 = 0b11;
}
}
pub mod CP11 {
pub const offset: u32 = 22;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CP11_0: u32 = 0b00;
pub const CP11_1: u32 = 0b01;
pub const CP11_3: u32 = 0b11;
}
}
}
pub mod STIR {
pub mod INTID {
pub const offset: u32 = 0;
pub const mask: u32 = 0x1ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ICIALLU {
pub mod ICIALLU {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod ICIMVAU {
pub mod ICIMVAU {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod DCIMVAC {
pub mod DCIMVAC {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod DCISW {
pub mod DCISW {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod DCCMVAU {
pub mod DCCMVAU {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod DCCMVAC {
pub mod DCCMVAC {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod DCCSW {
pub mod DCCSW {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod DCCIMVAC {
pub mod DCCIMVAC {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod DCCISW {
pub mod DCCISW {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CM7_ITCMCR {
pub mod EN {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const EN_0: u32 = 0b0;
pub const EN_1: u32 = 0b1;
}
}
pub mod RMW {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const RMW_0: u32 = 0b0;
pub const RMW_1: u32 = 0b1;
}
}
pub mod RETEN {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const RETEN_0: u32 = 0b0;
pub const RETEN_1: u32 = 0b1;
}
}
pub mod SZ {
pub const offset: u32 = 3;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SZ_0: u32 = 0b0000;
pub const SZ_3: u32 = 0b0011;
pub const SZ_4: u32 = 0b0100;
pub const SZ_5: u32 = 0b0101;
pub const SZ_6: u32 = 0b0110;
pub const SZ_7: u32 = 0b0111;
pub const SZ_8: u32 = 0b1000;
pub const SZ_9: u32 = 0b1001;
pub const SZ_10: u32 = 0b1010;
pub const SZ_11: u32 = 0b1011;
pub const SZ_12: u32 = 0b1100;
pub const SZ_13: u32 = 0b1101;
pub const SZ_14: u32 = 0b1110;
pub const SZ_15: u32 = 0b1111;
}
}
}
pub mod CM7_DTCMCR {
pub use super::CM7_ITCMCR::EN;
pub use super::CM7_ITCMCR::RETEN;
pub use super::CM7_ITCMCR::RMW;
pub use super::CM7_ITCMCR::SZ;
}
pub mod CM7_AHBPCR {
pub mod EN {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const EN_0: u32 = 0b0;
pub const EN_1: u32 = 0b1;
}
}
pub mod SZ {
pub const offset: u32 = 1;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SZ_0: u32 = 0b000;
pub const SZ_1: u32 = 0b001;
pub const SZ_2: u32 = 0b010;
pub const SZ_3: u32 = 0b011;
pub const SZ_4: u32 = 0b100;
}
}
}
pub mod CM7_CACR {
pub mod SIWT {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SIWT_0: u32 = 0b0;
pub const SIWT_1: u32 = 0b1;
}
}
pub mod ECCDIS {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const ECCDIS_0: u32 = 0b0;
pub const ECCDIS_1: u32 = 0b1;
}
}
pub mod FORCEWT {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FORCEWT_0: u32 = 0b0;
pub const FORCEWT_1: u32 = 0b1;
}
}
}
pub mod CM7_AHBSCR {
pub mod CTL {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CTL_0: u32 = 0b00;
pub const CTL_1: u32 = 0b01;
pub const CTL_2: u32 = 0b10;
pub const CTL_3: u32 = 0b11;
}
}
pub mod TPRI {
pub const offset: u32 = 2;
pub const mask: u32 = 0x1ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod INITCOUNT {
pub const offset: u32 = 11;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CM7_ABFSR {
pub mod ITCM {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DTCM {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod AHBP {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod AXIM {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod EPPB {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod AXIMTYPE {
pub const offset: u32 = 8;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const AXIMTYPE_0: u32 = 0b00;
pub const AXIMTYPE_1: u32 = 0b01;
pub const AXIMTYPE_2: u32 = 0b10;
pub const AXIMTYPE_3: u32 = 0b11;
}
}
}
#[repr(C)]
pub struct RegisterBlock {
_reserved1: [u32; 2],
pub ACTLR: RWRegister<u32>,
_reserved2: [u32; 829],
pub CPUID: RORegister<u32>,
pub ICSR: RWRegister<u32>,
pub VTOR: RWRegister<u32>,
pub AIRCR: RWRegister<u32>,
pub SCR: RWRegister<u32>,
pub CCR: RWRegister<u32>,
pub SHPR1: RWRegister<u32>,
pub SHPR2: RWRegister<u32>,
pub SHPR3: RWRegister<u32>,
pub SHCSR: RWRegister<u32>,
pub CFSR: RWRegister<u32>,
pub HFSR: RWRegister<u32>,
pub DFSR: RWRegister<u32>,
pub MMFAR: RWRegister<u32>,
pub BFAR: RWRegister<u32>,
_reserved3: [u32; 1],
pub ID_PFR0: RORegister<u32>,
pub ID_PFR1: RORegister<u32>,
pub ID_DFR0: RORegister<u32>,
pub ID_AFR0: RORegister<u32>,
pub ID_MMFR0: RORegister<u32>,
pub ID_MMFR1: RORegister<u32>,
pub ID_MMFR2: RORegister<u32>,
pub ID_MMFR3: RORegister<u32>,
pub ID_ISAR0: RORegister<u32>,
pub ID_ISAR1: RORegister<u32>,
pub ID_ISAR2: RORegister<u32>,
pub ID_ISAR3: RORegister<u32>,
pub ID_ISAR4: RORegister<u32>,
_reserved4: [u32; 1],
pub CLIDR: RORegister<u32>,
pub CTR: RORegister<u32>,
pub CCSIDR: RORegister<u32>,
pub CSSELR: RWRegister<u32>,
pub CPACR: RWRegister<u32>,
_reserved5: [u32; 93],
pub STIR: RWRegister<u32>,
_reserved6: [u32; 19],
pub ICIALLU: UnsafeWORegister<u32>,
_reserved7: [u32; 1],
pub ICIMVAU: UnsafeWORegister<u32>,
pub DCIMVAC: UnsafeWORegister<u32>,
pub DCISW: UnsafeWORegister<u32>,
pub DCCMVAU: UnsafeWORegister<u32>,
pub DCCMVAC: UnsafeWORegister<u32>,
pub DCCSW: UnsafeWORegister<u32>,
pub DCCIMVAC: UnsafeWORegister<u32>,
pub DCCISW: UnsafeWORegister<u32>,
_reserved8: [u32; 6],
pub CM7_ITCMCR: RWRegister<u32>,
pub CM7_DTCMCR: RWRegister<u32>,
pub CM7_AHBPCR: RWRegister<u32>,
pub CM7_CACR: RWRegister<u32>,
pub CM7_AHBSCR: RWRegister<u32>,
_reserved9: [u32; 1],
pub CM7_ABFSR: RWRegister<u32>,
}
pub struct ResetValues {
pub ACTLR: u32,
pub CPUID: u32,
pub ICSR: u32,
pub VTOR: u32,
pub AIRCR: u32,
pub SCR: u32,
pub CCR: u32,
pub SHPR1: u32,
pub SHPR2: u32,
pub SHPR3: u32,
pub SHCSR: u32,
pub CFSR: u32,
pub HFSR: u32,
pub DFSR: u32,
pub MMFAR: u32,
pub BFAR: u32,
pub ID_PFR0: u32,
pub ID_PFR1: u32,
pub ID_DFR0: u32,
pub ID_AFR0: u32,
pub ID_MMFR0: u32,
pub ID_MMFR1: u32,
pub ID_MMFR2: u32,
pub ID_MMFR3: u32,
pub ID_ISAR0: u32,
pub ID_ISAR1: u32,
pub ID_ISAR2: u32,
pub ID_ISAR3: u32,
pub ID_ISAR4: u32,
pub CLIDR: u32,
pub CTR: u32,
pub CCSIDR: u32,
pub CSSELR: u32,
pub CPACR: u32,
pub STIR: u32,
pub ICIALLU: u32,
pub ICIMVAU: u32,
pub DCIMVAC: u32,
pub DCISW: u32,
pub DCCMVAU: u32,
pub DCCMVAC: u32,
pub DCCSW: u32,
pub DCCIMVAC: u32,
pub DCCISW: u32,
pub CM7_ITCMCR: u32,
pub CM7_DTCMCR: u32,
pub CM7_AHBPCR: u32,
pub CM7_CACR: u32,
pub CM7_AHBSCR: u32,
pub CM7_ABFSR: 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 = "rtfm")]
unsafe impl Send for Instance {}