API Documentation

enum SPIFlashMode

Values:

enumerator MODE_QIO
enumerator MODE_QOUT
enumerator MODE_DIO
enumerator MODE_DOUT
enumerator MODE_SLOW_READ

Not supported.

enumerator MODE_FAST_READ

Not supported.

enumerator MODE_QIO
enumerator MODE_QOUT
enumerator MODE_DIO
enumerator MODE_DOUT
enumerator MODE_FAST_READ
enumerator MODE_SLOW_READ
enum SPIFlashSpeed

Values:

enumerator SPEED_40MHZ
enumerator SPEED_26MHZ
enumerator SPEED_20MHZ
enumerator SPEED_80MHZ
enumerator SPEED_40MHZ
enumerator SPEED_26MHZ
enumerator SPEED_20MHZ
enumerator SPEED_80MHZ
enum SPIFlashSize

Values:

enumerator SIZE_4MBIT
enumerator SIZE_2MBIT
enumerator SIZE_8MBIT
enumerator SIZE_16MBIT
enumerator SIZE_32MBIT
enumerator SIZE_1MBIT

Not supported.

enumerator SIZE_1MBIT
enumerator SIZE_2MBIT
enumerator SIZE_4MBIT
enumerator SIZE_8MBIT
enumerator SIZE_16MBIT
enumerator SIZE_32MBIT

Not listed.

enum SPIFlashMode

Values:

enumerator MODE_QIO
enumerator MODE_QOUT
enumerator MODE_DIO
enumerator MODE_DOUT
enumerator MODE_SLOW_READ

Not supported.

enumerator MODE_FAST_READ

Not supported.

enumerator MODE_QIO
enumerator MODE_QOUT
enumerator MODE_DIO
enumerator MODE_DOUT
enumerator MODE_FAST_READ
enumerator MODE_SLOW_READ
enum SPIFlashSpeed

Values:

enumerator SPEED_40MHZ
enumerator SPEED_26MHZ
enumerator SPEED_20MHZ
enumerator SPEED_80MHZ
enumerator SPEED_40MHZ
enumerator SPEED_26MHZ
enumerator SPEED_20MHZ
enumerator SPEED_80MHZ
enum SPIFlashSize

Values:

enumerator SIZE_4MBIT
enumerator SIZE_2MBIT
enumerator SIZE_8MBIT
enumerator SIZE_16MBIT
enumerator SIZE_32MBIT
enumerator SIZE_1MBIT

Not supported.

enumerator SIZE_1MBIT
enumerator SIZE_2MBIT
enumerator SIZE_4MBIT
enumerator SIZE_8MBIT
enumerator SIZE_16MBIT
enumerator SIZE_32MBIT

Not listed.

inline uint32_t flashmem_get_address(const void *memptr)

Obtain the flash memory address for a memory pointer.

Note

If memptr is not in valid flash memory it will return an offset which exceeds the internal flash memory size.

Note

The flash location is dependent on where rBoot has mapped the firmware.

Parameters

memptr

Returns

uint32_t – Offset from start of flash memory

uint32_t flashmem_write(const void *from, uint32_t toaddr, uint32_t size)

Write a block of data to flash.

Note

None of the parameters need to be aligned

Parameters
  • from – Buffer to obtain data from

  • toaddr – Flash location to start writing

  • size – Number of bytes to write

Returns

uint32_t – Number of bytes written

uint32_t flashmem_read(void *to, uint32_t fromaddr, uint32_t size)

Read a block of data from flash.

Note

none of the parameters need to be aligned

Parameters
  • to – Buffer to store data

  • fromaddr – Flash location to start reading

  • size – Number of bytes to read

Returns

uint32_t – Number of bytes written

bool flashmem_erase_sector(uint32_t sector_id)

Erase a single flash sector.

Parameters

sector_id – the sector to erase

Returns

true – on success

SPIFlashInfo flashmem_get_info()

Get flash memory information block.

Returns

SPIFlashInfo – Information block

uint8_t flashmem_get_size_type()

Returns a number indicating the size of flash memory chip.

Returns

uint8_t – See SpiFlashInfo.size field for possible values

uint32_t flashmem_get_size_bytes()

get the total flash memory size

Returns

uint32_t – Size in bytes

uint16_t flashmem_get_size_sectors()

Get the total number of flash sectors.

Returns

uint16_t – Sector count

uint32_t flashmem_find_sector(uint32_t address, uint32_t *pstart, uint32_t *pend)

Helper function: find the flash sector in which an address resides.

Note

Optional parameters may be null

Parameters
  • address

  • pstart – OUT/OPTIONAL: Start of sector containing the given address

  • pend – OUT/OPTIONAL: Last address in sector

Returns

uint32_t – Sector number for the given address

uint32_t flashmem_get_sector_of_address(uint32_t addr)

Get sector number containing the given address.

Parameters

addr

Returns

uint32_t – sector number

uint32_t flashmem_write_internal(const void *from, uint32_t toaddr, uint32_t size)

write to flash memory

Note

All parameters MUST be aligned to 4-byte word boundaries, including the RAM pointer

Parameters
  • from – Buffer to read data from - MUST be word-aligned

  • toaddr – Flash address (offset) to write to - MUST be word-aligned

  • size – Number of bytes to write - MUST be word-aligned

Returns

uint32_t – Number of bytes actually written

uint32_t flashmem_read_internal(void *to, uint32_t fromaddr, uint32_t size)

Read from flash memory.

Note

All parameters MUST be aligned to 4-byte word boundaries, including the RAM pointer

Parameters
  • to – Buffer to store data - MUST be word-aligned

  • fromaddr – Flash address (offset) to read from - MUST be word-aligned

  • size – Number of bytes to read - MUST be word-aligned

Returns

uint32_t – Number of bytes actually read

uint32_t flashmem_get_first_free_block_address()
INTERNAL_FLASH_WRITE_UNIT_SIZE

Flash memory access must be aligned and in multiples of 4-byte words.

INTERNAL_FLASH_READ_UNIT_SIZE
FLASH_TOTAL_SEC_COUNT
SYS_PARAM_SEC_COUNT

Number of flash sectors reserved for system parameters at start.

FLASH_WORK_SEC_COUNT
INTERNAL_FLASH_SECTOR_SIZE
INTERNAL_FLASH_SIZE
INTERNAL_FLASH_START_ADDRESS
SPI_FLASH_RESULT_OK
INTERNAL_FLASH_WRITE_UNIT_SIZE

Flash memory access must be aligned and in multiples of 4-byte words.

INTERNAL_FLASH_READ_UNIT_SIZE
FLASH_TOTAL_SEC_COUNT
SYS_PARAM_SEC_COUNT

Number of flash sectors reserved for system parameters at start.

FLASH_WORK_SEC_COUNT
INTERNAL_FLASH_SECTOR_SIZE
INTERNAL_FLASH_SIZE
struct STORE_TYPEDEF_ATTR
#include <esp_spi_flash.h>

SPI Flash memory information block. Stored at the beginning of flash memory.

Public Members

uint8_t mode

SPIFlashMode.

uint8_t speed

SPIFlashSpeed.

uint8_t size

SPIFlashSize.

struct SPIFlashInfo
#include <esp_spi_flash.h>

SPI Flash memory information block. Copied from bootloader header. See esp_image_header_t.