Struct esp_idf_svc::hal::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
impl esp_image_header_t
pub fn spi_speed(&self) -> u8
pub fn set_spi_speed(&mut self, val: u8)
pub fn spi_size(&self) -> u8
pub fn set_spi_size(&mut self, val: u8)
pub fn new_bitfield_1( spi_speed: u8, spi_size: u8, ) -> __BindgenBitfieldUnit<[u8; 1]>
Trait Implementations§
source§impl Clone for esp_image_header_t
impl Clone for esp_image_header_t
source§fn clone(&self) -> esp_image_header_t
fn clone(&self) -> esp_image_header_t
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for esp_image_header_t
impl Debug for esp_image_header_t
source§impl Default for esp_image_header_t
impl Default for esp_image_header_t
source§fn default() -> esp_image_header_t
fn default() -> esp_image_header_t
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 Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)