pub trait MemoryMappedRegister<T>: Clone + From<T> + Into<T> + Sized + Debug {
    const ADDRESS_OFFSET: u64;
    const NAME: &'static str;

    // Provided methods
    fn get_mmio_address_from_base(base_address: u64) -> Result<u64, Error> { ... }
    fn get_mmio_address() -> u64 { ... }
}
Expand description

A memory mapped register, for instance ARM debug registers (DHCSR, etc).

Required Associated Constants§

source

const ADDRESS_OFFSET: u64

The register’s address in the target memory. For some architectures (e.g. ARM Cortex-A) this address is offset from a base address. For others (e.g. ARM Cortex-M, RISC-V) this address is absolute.

source

const NAME: &'static str

The register’s name.

Provided Methods§

source

fn get_mmio_address_from_base(base_address: u64) -> Result<u64, Error>

Get the register’s address in the memory map. For architectures like ARM Cortex-A, this address is offset from a base address, which must be supplied when calling this method. For others (e.g. ARM Cortex-M, RISC-V) where this address is a constant, please use MemoryMappedRegister::get_mmio_address.

source

fn get_mmio_address() -> u64

Get the register’s address in the memory map. For architectures ARM Cortex-M and RISC-V, this address is constant value stored as part of MemoryMappedRegister::ADDRESS_OFFSET. For other architectures (e.g. ARM Cortex-A) where this address is offset from a base address, please use MemoryMappedRegister::get_mmio_address_from_base.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl MemoryMappedRegister<u32> for probe_rs::architecture::arm::armv6m::Aircr

source§

const ADDRESS_OFFSET: u64 = 3_758_157_068u64

source§

const NAME: &'static str = "AIRCR"

source§

impl MemoryMappedRegister<u32> for BpCompx

source§

const ADDRESS_OFFSET: u64 = 3_758_104_584u64

source§

const NAME: &'static str = "BP_CTRL0"

source§

impl MemoryMappedRegister<u32> for BpCtrl

source§

const ADDRESS_OFFSET: u64 = 3_758_104_576u64

source§

const NAME: &'static str = "BP_CTRL"

source§

impl MemoryMappedRegister<u32> for probe_rs::architecture::arm::armv6m::Dcrdr

source§

const ADDRESS_OFFSET: u64 = 3_758_157_304u64

source§

const NAME: &'static str = "DCRDR"

source§

impl MemoryMappedRegister<u32> for probe_rs::architecture::arm::armv6m::Demcr

source§

const ADDRESS_OFFSET: u64 = 3_758_157_308u64

source§

const NAME: &'static str = "DEMCR"

source§

impl MemoryMappedRegister<u32> for probe_rs::architecture::arm::armv6m::Dhcsr

source§

const ADDRESS_OFFSET: u64 = 3_758_157_296u64

source§

const NAME: &'static str = "DHCSR"

source§

impl MemoryMappedRegister<u32> for probe_rs::architecture::arm::armv7m::Aircr

source§

const ADDRESS_OFFSET: u64 = 3_758_157_068u64

source§

const NAME: &'static str = "AIRCR"

source§

impl MemoryMappedRegister<u32> for probe_rs::architecture::arm::armv7m::Dcrdr

source§

const ADDRESS_OFFSET: u64 = 3_758_157_304u64

source§

const NAME: &'static str = "DCRDR"

source§

impl MemoryMappedRegister<u32> for probe_rs::architecture::arm::armv7m::Demcr

source§

const ADDRESS_OFFSET: u64 = 3_758_157_308u64

source§

const NAME: &'static str = "DEMCR"

source§

impl MemoryMappedRegister<u32> for probe_rs::architecture::arm::armv7m::Dhcsr

source§

const ADDRESS_OFFSET: u64 = 3_758_157_296u64

source§

const NAME: &'static str = "DHCSR"

source§

impl MemoryMappedRegister<u32> for probe_rs::architecture::arm::armv7m::FpCtrl

source§

const ADDRESS_OFFSET: u64 = 3_758_104_576u64

source§

const NAME: &'static str = "FP_CTRL"

source§

impl MemoryMappedRegister<u32> for FpRev1CompX

source§

const ADDRESS_OFFSET: u64 = 3_758_104_584u64

source§

const NAME: &'static str = "FP_CTRL"

source§

impl MemoryMappedRegister<u32> for FpRev2CompX

source§

const ADDRESS_OFFSET: u64 = 3_758_104_584u64

source§

const NAME: &'static str = "FP_CTRL"

source§

impl MemoryMappedRegister<u32> for probe_rs::architecture::arm::armv8m::Aircr

source§

const ADDRESS_OFFSET: u64 = 3_758_157_068u64

source§

const NAME: &'static str = "AIRCR"

source§

impl MemoryMappedRegister<u32> for probe_rs::architecture::arm::armv8m::Dcrdr

source§

const ADDRESS_OFFSET: u64 = 3_758_157_304u64

source§

const NAME: &'static str = "DCRDR"

source§

impl MemoryMappedRegister<u32> for probe_rs::architecture::arm::armv8m::Demcr

source§

const ADDRESS_OFFSET: u64 = 3_758_157_308u64

source§

const NAME: &'static str = "DEMCR"

source§

impl MemoryMappedRegister<u32> for probe_rs::architecture::arm::armv8m::Dhcsr

source§

const ADDRESS_OFFSET: u64 = 3_758_157_296u64

source§

const NAME: &'static str = "DHCSR"

source§

impl MemoryMappedRegister<u32> for FpCompN

source§

const ADDRESS_OFFSET: u64 = 3_758_104_584u64

source§

const NAME: &'static str = "FP_COMPn"

source§

impl MemoryMappedRegister<u32> for probe_rs::architecture::arm::armv8m::FpCtrl

source§

const ADDRESS_OFFSET: u64 = 3_758_104_576u64

source§

const NAME: &'static str = "FP_CTRL"

source§

impl MemoryMappedRegister<u32> for Abstractauto

source§

const ADDRESS_OFFSET: u64 = 24u64

source§

const NAME: &'static str = "abstractauto"

source§

impl MemoryMappedRegister<u32> for AccessMemoryCommand

source§

const ADDRESS_OFFSET: u64 = 23u64

source§

const NAME: &'static str = "command"

source§

impl MemoryMappedRegister<u32> for AccessRegisterCommand

source§

const ADDRESS_OFFSET: u64 = 23u64

source§

const NAME: &'static str = "command"

source§

impl MemoryMappedRegister<u32> for Sbcs

source§

const ADDRESS_OFFSET: u64 = 56u64

source§

const NAME: &'static str = "sbcs"

source§

impl MemoryMappedRegister<u32> for Abstractcs

source§

const ADDRESS_OFFSET: u64 = 22u64

source§

const NAME: &'static str = "abstractcs"

source§

impl MemoryMappedRegister<u32> for Data0

source§

const ADDRESS_OFFSET: u64 = 4u64

source§

const NAME: &'static str = "data0"

source§

impl MemoryMappedRegister<u32> for Data1

source§

const ADDRESS_OFFSET: u64 = 5u64

source§

const NAME: &'static str = "data1"

source§

impl MemoryMappedRegister<u32> for Data2

source§

const ADDRESS_OFFSET: u64 = 6u64

source§

const NAME: &'static str = "data2"

source§

impl MemoryMappedRegister<u32> for Data3

source§

const ADDRESS_OFFSET: u64 = 7u64

source§

const NAME: &'static str = "data3"

source§

impl MemoryMappedRegister<u32> for Data4

source§

const ADDRESS_OFFSET: u64 = 8u64

source§

const NAME: &'static str = "data4"

source§

impl MemoryMappedRegister<u32> for Data5

source§

const ADDRESS_OFFSET: u64 = 9u64

source§

const NAME: &'static str = "data5"

source§

impl MemoryMappedRegister<u32> for Data6

source§

const ADDRESS_OFFSET: u64 = 10u64

source§

const NAME: &'static str = "data6"

source§

impl MemoryMappedRegister<u32> for Data7

source§

const ADDRESS_OFFSET: u64 = 11u64

source§

const NAME: &'static str = "data7"

source§

impl MemoryMappedRegister<u32> for Data8

source§

const ADDRESS_OFFSET: u64 = 12u64

source§

const NAME: &'static str = "data8"

source§

impl MemoryMappedRegister<u32> for Data9

source§

const ADDRESS_OFFSET: u64 = 13u64

source§

const NAME: &'static str = "data9"

source§

impl MemoryMappedRegister<u32> for Data10

source§

const ADDRESS_OFFSET: u64 = 14u64

source§

const NAME: &'static str = "data10"

source§

impl MemoryMappedRegister<u32> for Data11

source§

const ADDRESS_OFFSET: u64 = 15u64

source§

const NAME: &'static str = "data11"

source§

impl MemoryMappedRegister<u32> for Dmcontrol

source§

const ADDRESS_OFFSET: u64 = 16u64

source§

const NAME: &'static str = "dmcontrol"

source§

impl MemoryMappedRegister<u32> for Dmstatus

source§

const ADDRESS_OFFSET: u64 = 17u64

source§

const NAME: &'static str = "dmstatus"

source§

impl MemoryMappedRegister<u32> for Hartinfo

source§

const ADDRESS_OFFSET: u64 = 18u64

source§

const NAME: &'static str = "hartinfo"

source§

impl MemoryMappedRegister<u32> for Misa

source§

const ADDRESS_OFFSET: u64 = 769u64

source§

const NAME: &'static str = "misa"

source§

impl MemoryMappedRegister<u32> for Progbuf0

source§

const ADDRESS_OFFSET: u64 = 32u64

source§

const NAME: &'static str = "progbuf0"

source§

impl MemoryMappedRegister<u32> for Progbuf1

source§

const ADDRESS_OFFSET: u64 = 33u64

source§

const NAME: &'static str = "progbuf1"

source§

impl MemoryMappedRegister<u32> for Progbuf2

source§

const ADDRESS_OFFSET: u64 = 34u64

source§

const NAME: &'static str = "progbuf2"

source§

impl MemoryMappedRegister<u32> for Progbuf3

source§

const ADDRESS_OFFSET: u64 = 35u64

source§

const NAME: &'static str = "progbuf3"

source§

impl MemoryMappedRegister<u32> for Progbuf4

source§

const ADDRESS_OFFSET: u64 = 36u64

source§

const NAME: &'static str = "progbuf4"

source§

impl MemoryMappedRegister<u32> for Progbuf5

source§

const ADDRESS_OFFSET: u64 = 37u64

source§

const NAME: &'static str = "progbuf5"

source§

impl MemoryMappedRegister<u32> for Progbuf6

source§

const ADDRESS_OFFSET: u64 = 38u64

source§

const NAME: &'static str = "progbuf6"

source§

impl MemoryMappedRegister<u32> for Progbuf7

source§

const ADDRESS_OFFSET: u64 = 39u64

source§

const NAME: &'static str = "progbuf7"

source§

impl MemoryMappedRegister<u32> for Progbuf8

source§

const ADDRESS_OFFSET: u64 = 40u64

source§

const NAME: &'static str = "progbuf8"

source§

impl MemoryMappedRegister<u32> for Progbuf9

source§

const ADDRESS_OFFSET: u64 = 41u64

source§

const NAME: &'static str = "progbuf9"

source§

impl MemoryMappedRegister<u32> for Progbuf10

source§

const ADDRESS_OFFSET: u64 = 42u64

source§

const NAME: &'static str = "progbuf10"

source§

impl MemoryMappedRegister<u32> for Progbuf11

source§

const ADDRESS_OFFSET: u64 = 43u64

source§

const NAME: &'static str = "progbuf11"

source§

impl MemoryMappedRegister<u32> for Progbuf12

source§

const ADDRESS_OFFSET: u64 = 44u64

source§

const NAME: &'static str = "progbuf12"

source§

impl MemoryMappedRegister<u32> for Progbuf13

source§

const ADDRESS_OFFSET: u64 = 45u64

source§

const NAME: &'static str = "progbuf13"

source§

impl MemoryMappedRegister<u32> for Progbuf14

source§

const ADDRESS_OFFSET: u64 = 46u64

source§

const NAME: &'static str = "progbuf14"

source§

impl MemoryMappedRegister<u32> for Progbuf15

source§

const ADDRESS_OFFSET: u64 = 47u64

source§

const NAME: &'static str = "progbuf15"