embassy-rp

Crates

git

Versions

rp235xa

Flavors

embassy_rp::block

Struct Block

Source
#[repr(C)]
pub struct Block<const N: usize> { /* private fields */ }
Expand description

A Block as understood by the Boot ROM.

This could be an Image Definition, or a Partition Table, or maybe some other kind of block.

It contains within the special start and end markers the Boot ROM is looking for.

Implementations§

Source§

impl<const N: usize> Block<N>

Source

pub const fn new(items: [u32; N]) -> Block<N>

Construct a new Binary Block, with the given items.

The length, and the Start and End markers are added automatically. The Block Loop pointer initially points to itself.

Source

pub const fn with_offset(self, offset: *const u32) -> Block<N>

Change the Block Loop offset value.

This method isn’t that useful because you can’t evaluate the difference between two pointers in a const context as the addresses aren’t assigned until long after the const evaluator has run.

If you think you need this method, you might want to set a unique random value here and swap it for the real offset as a post-processing step.

Source§

impl Block<0>

Source

pub const fn empty() -> Block<0>

Construct an empty block.

Source

pub const fn extend(self, word: u32) -> Block<1>

Make the block one word larger

Source§

impl Block<1>

Source

pub const fn extend(self, word: u32) -> Block<2>

Make the block one word larger

Source§

impl Block<2>

Source

pub const fn extend(self, word: u32) -> Block<3>

Make the block one word larger

Source§

impl Block<1>

Source

pub const fn arch_exe(security: Security, architecture: Architecture) -> Self

Construct a new IMAGE_DEF Block, for an EXE with the given security and architecture.

Source

pub const fn exe(security: Security) -> Self

Construct a new IMAGE_DEF Block, for an EXE with the given security.

The target architecture is taken from the current build target (i.e. Arm or RISC-V).

Source

pub const fn non_secure_exe() -> Self

Construct a new IMAGE_DEF Block, for a Non-Secure EXE.

The target architecture is taken from the current build target (i.e. Arm or RISC-V).

Source

pub const fn secure_exe() -> Self

Construct a new IMAGE_DEF Block, for a Secure EXE.

The target architecture is taken from the current build target (i.e. Arm or RISC-V).

Trait Implementations§

Source§

impl<const N: usize> Debug for Block<N>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<const N: usize> Sync for Block<N>

Auto Trait Implementations§

§

impl<const N: usize> Freeze for Block<N>

§

impl<const N: usize> RefUnwindSafe for Block<N>

§

impl<const N: usize> !Send for Block<N>

§

impl<const N: usize> Unpin for Block<N>

§

impl<const N: usize> UnwindSafe for Block<N>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<Src, Dst> LosslessTryInto<Dst> for Src
where Dst: LosslessTryFrom<Src>,

Source§

fn lossless_try_into(self) -> Option<Dst>

Performs the conversion.
Source§

impl<Src, Dst> LossyInto<Dst> for Src
where Dst: LossyFrom<Src>,

Source§

fn lossy_into(self) -> Dst

Performs the conversion.
Source§

impl<T> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.