Trait probe_rs::MemoryInterface[][src]

pub trait MemoryInterface {
    fn read_word_32(&mut self, address: u32) -> Result<u32, Error>;
fn read_word_8(&mut self, address: u32) -> Result<u8, Error>;
fn read_32(&mut self, address: u32, data: &mut [u32]) -> Result<(), Error>;
fn read_8(&mut self, address: u32, data: &mut [u8]) -> Result<(), Error>;
fn write_word_32(&mut self, address: u32, data: u32) -> Result<(), Error>;
fn write_word_8(&mut self, address: u32, data: u8) -> Result<(), Error>;
fn write_32(&mut self, address: u32, data: &[u32]) -> Result<(), Error>;
fn write_8(&mut self, address: u32, data: &[u8]) -> Result<(), Error>;
fn flush(&mut self) -> Result<(), Error>; fn read_mem_32bit(
        &mut self,
        address: u32,
        data: &mut [u8]
    ) -> Result<(), Error> { ... }
fn read(&mut self, address: u32, data: &mut [u8]) -> Result<(), Error> { ... } }

Required methods

Read a 32bit word of at address.

The address where the read should be performed at has to be word aligned. Returns AccessPortError::MemoryNotAligned if this does not hold true.

Read an 8bit word of at address.

Read a block of 32bit words at address.

The number of words read is data.len(). The address where the read should be performed at has to be word aligned. Returns AccessPortError::MemoryNotAligned if this does not hold true.

Read a block of 8bit words at address.

Write a 32bit word at address.

The address where the write should be performed at has to be word aligned. Returns AccessPortError::MemoryNotAligned if this does not hold true.

Write an 8bit word at address.

Write a block of 32bit words at address.

The number of words written is data.len(). The address where the write should be performed at has to be word aligned. Returns AccessPortError::MemoryNotAligned if this does not hold true.

Write a block of 8bit words at address.

Flush any outstanding operations.

For performance, debug probe implementations may choose to batch writes; to assure that any such batched writes have in fact been issued, flush can be called. Takes no arguments, but may return failure if a batched operation fails.

Provided methods

Reads bytes using 32 bit memory access. Address must be 32 bit aligned and data must be an exact multiple of 4.

Read a block of 8bit words at address. May use 32 bit memory access, so should only be used if reading memory locations that don’t have side effects. Generally faster than read_8.

Implementations on Foreign Types

Implementors