pub struct SfcDriver<'d> { /* private fields */ }Expand description
SFC driver.
Implementations§
Source§impl<'d> SfcDriver<'d>
impl<'d> SfcDriver<'d>
Sourcepub fn configure_global(
&mut self,
spi_mode: FlashSpiMode,
addr_mode: AddressMode,
read_delay: ReadDelay,
write_protect: bool,
)
pub fn configure_global( &mut self, spi_mode: FlashSpiMode, addr_mode: AddressMode, read_delay: ReadDelay, write_protect: bool, )
Configure the global SFC settings.
Sourcepub fn configure_timing(&mut self, tshsl: u8, tcss: u8, tcsh: u8)
pub fn configure_timing(&mut self, tshsl: u8, tcss: u8, tcsh: u8)
Configure the SFC timing parameters.
tshsl— Inter-operation delay: (tshsl + 2) clock cyclestcss— CS setup time: (tcss + 1) clock cyclestcsh— CS hold time: (tcsh + 1) clock cycles
Sourcepub fn configure_bus(&mut self, config: &BusConfig)
pub fn configure_bus(&mut self, config: &BusConfig)
Configure the bus read/write parameters for memory-mapped access.
Sourcepub fn release_bus_reset(&mut self)
pub fn release_bus_reset(&mut self)
Release the SFC bus from soft reset.
Sourcepub fn hold_bus_reset(&mut self)
pub fn hold_bus_reset(&mut self)
Hold the SFC bus in soft reset.
Sourcepub fn send_command(
&mut self,
instruction: u8,
address: u32,
address_enable: bool,
)
pub fn send_command( &mut self, instruction: u8, address: u32, address_enable: bool, )
Execute a flash command (no data phase).
instruction— Flash operation code.address— Operation address (for commands with address phase).address_enable— Whether the command includes an address phase.
Sourcepub fn command_with_data(
&mut self,
instruction: u8,
address: u32,
write_data: &[u8],
read: bool,
) -> Result<[u8; 64], SfcError>
pub fn command_with_data( &mut self, instruction: u8, address: u32, write_data: &[u8], read: bool, ) -> Result<[u8; 64], SfcError>
Execute a flash command with data phase.
instruction— Flash operation code.address— Operation address.write_data— Data to write (for write commands).read—truefor read commands,falsefor write commands.
Returns the read data (up to 64 bytes) for read commands.
Sourcepub fn bus_dma_start(
&mut self,
mem_addr: u32,
flash_addr: u32,
length: u32,
read: bool,
)
pub fn bus_dma_start( &mut self, mem_addr: u32, flash_addr: u32, length: u32, read: bool, )
Start a bus DMA transfer between flash and memory.
mem_addr— Memory address (must be in valid range).flash_addr— Flash address.length— Number of bytes to transfer.read—truefor flash-to-memory read,falsefor memory-to-flash write.
Sourcepub fn bus_dma_wait(&self)
pub fn bus_dma_wait(&self)
Wait for bus DMA to complete.
Sourcepub fn command_done(&self) -> bool
pub fn command_done(&self) -> bool
Check if a flash command is complete.
Sourcepub fn clear_interrupts(&self)
pub fn clear_interrupts(&self)
Clear all SFC interrupts.
Sourcepub fn enable_interrupts(&mut self, cmd_done: bool, dma_done: bool)
pub fn enable_interrupts(&mut self, cmd_done: bool, dma_done: bool)
Enable specific SFC interrupts.
cmd_done— Command operation complete interrupt.dma_done— DMA transfer complete interrupt.
Sourcepub fn raw_interrupt_status(&self) -> (bool, bool)
pub fn raw_interrupt_status(&self) -> (bool, bool)
Check raw interrupt status.
Returns (cmd_done_raw, dma_done_raw).
Sourcepub fn enable_aes_low_power(&mut self)
pub fn enable_aes_low_power(&mut self)
Enable AES low-power mode (for XIP encrypted execution).
Sourcepub fn disable_aes_low_power(&mut self)
pub fn disable_aes_low_power(&mut self)
Disable AES low-power mode.
Sourcepub fn set_iv_valid(&mut self)
pub fn set_iv_valid(&mut self)
Set AES IV valid flag.
Sourcepub fn read_aes_dfx(&self) -> u32
pub fn read_aes_dfx(&self) -> u32
Read AES DFX information (for debugging).
Auto Trait Implementations§
impl<'d> Freeze for SfcDriver<'d>
impl<'d> RefUnwindSafe for SfcDriver<'d>
impl<'d> Send for SfcDriver<'d>
impl<'d> Sync for SfcDriver<'d>
impl<'d> Unpin for SfcDriver<'d>
impl<'d> UnsafeUnpin for SfcDriver<'d>
impl<'d> UnwindSafe for SfcDriver<'d>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more