Struct esp_idf_svc::sys::esp_image_header_t

source ·
#[repr(C, packed(1))]
pub struct esp_image_header_t {
Show 14 fields pub magic: u8, pub segment_count: u8, pub spi_mode: u8, pub _bitfield_align_1: [u8; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1]>, pub entry_addr: u32, pub wp_pin: u8, pub spi_pin_drv: [u8; 3], pub chip_id: u16, pub min_chip_rev: u8, pub min_chip_rev_full: u16, pub max_chip_rev_full: u16, pub reserved: [u8; 4], pub hash_appended: u8,
}
Expand description

@brief Main header of binary image

Fields§

§magic: u8

< Magic word ESP_IMAGE_HEADER_MAGIC

§segment_count: u8

< Count of memory segments

§spi_mode: u8

< flash read mode (esp_image_spi_mode_t as uint8_t)

§_bitfield_align_1: [u8; 0]§_bitfield_1: __BindgenBitfieldUnit<[u8; 1]>§entry_addr: u32

< Entry address

§wp_pin: u8

< WP pin when SPI pins set via efuse (read by ROM bootloader, the IDF bootloader uses software to configure the WP pin and sets this field to 0xEE=disabled)

§spi_pin_drv: [u8; 3]

< Drive settings for the SPI flash pins (read by ROM bootloader)

§chip_id: u16

< Chip identification number

§min_chip_rev: u8

< Minimal chip revision supported by image After the Major and Minor revision eFuses were introduced into the chips, this field is no longer used. But for compatibility reasons, we keep this field and the data in it. Use min_chip_rev_full instead. The software interprets this as a Major version for most of the chips and as a Minor version for the ESP32-C3.

§min_chip_rev_full: u16

< Minimal chip revision supported by image, in format: major * 100 + minor

§max_chip_rev_full: u16

< Maximal chip revision supported by image, in format: major * 100 + minor

§reserved: [u8; 4]

< Reserved bytes in additional header space, currently unused

§hash_appended: u8

< If 1, a SHA256 digest “simple hash” (of the entire image) is appended after the checksum. Included in image length. This digest is separate to secure boot and only used for detecting corruption. For secure boot signed images, the signature is appended after this (and the simple hash is included in the signed data).

Implementations§

source§

impl esp_image_header_t

source

pub fn spi_speed(&self) -> u8

source

pub fn set_spi_speed(&mut self, val: u8)

source

pub fn spi_size(&self) -> u8

source

pub fn set_spi_size(&mut self, val: u8)

source

pub fn new_bitfield_1( spi_speed: u8, spi_size: u8, ) -> __BindgenBitfieldUnit<[u8; 1]>

Trait Implementations§

source§

impl Clone for esp_image_header_t

source§

fn clone(&self) -> esp_image_header_t

Returns a copy of the value. Read more
1.0.0§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for esp_image_header_t

source§

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

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

impl Default for esp_image_header_t

source§

fn default() -> esp_image_header_t

Returns the “default value” for a type. Read more
source§

impl Copy for esp_image_header_t

Auto Trait Implementations§

§

impl Freeze for esp_image_header_t

§

impl RefUnwindSafe for esp_image_header_t

§

impl Send for esp_image_header_t

§

impl Sync for esp_image_header_t

§

impl Unpin for esp_image_header_t

§

impl UnwindSafe for esp_image_header_t

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

impl<T> CloneToUninit for T
where T: Clone,

§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> CloneToUninit for T
where T: Copy,

§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

fn into(self) -> U

Calls U::from(self).

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

§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

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

§

type Error = Infallible

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

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

Performs the conversion.
§

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

§

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

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

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

Performs the conversion.