embassy-rp

Crates

git

Versions

rp235xb

Flavors

Function embassy_rp::rom_data::flash_runtime_to_storage_addr

source ·
pub unsafe extern "C" fn flash_runtime_to_storage_addr(
    addr: u32,
) -> i32
Expand description

Applies the address translation currently configured by QMI address translation registers, ATRANS0 through ATRANS7.

See Section 12.14.4 of the RP2350 datasheet.

Translating an address outside of the XIP runtime address window, or beyond the bounds of an ATRANSx_SIZE field, returns BOOTROM_ERROR_INVALID_ADDRESS, which is not a valid flash storage address. Otherwise, return the storage address which QMI would access when presented with the runtime address addr. This is effectively a virtual-to-physical address translation for QMI.

Supported architectures: ARM-S, RISC-V

§Safety

This is a low-level C function. It may be difficult to call safely from Rust. If in doubt, check the rp235x datasheet for details and do your own safety evaluation.