SPI Flash API
Collaboration diagram for SPI Flash API:
Classes | |
| struct | SPIFlashInfo |
| SPI Flash memory information block. More... | |
Macros | |
| #define | INTERNAL_FLASH_SECTOR_SIZE SPI_FLASH_SEC_SIZE |
| #define | INTERNAL_FLASH_START_ADDRESS 0x40200000 |
| #define | INTERNAL_FLASH_WRITE_UNIT_SIZE 4 |
| #define | INTERNAL_FLASH_READ_UNIT_SIZE 4 |
| #define | FLASH_TOTAL_SEC_COUNT (flashmem_get_size_sectors()) |
Enumerations | |
| enum | SPIFlashMode { MODE_QIO = ESP_IMAGE_SPI_MODE_QIO , MODE_QOUT = ESP_IMAGE_SPI_MODE_QOUT , MODE_DIO = ESP_IMAGE_SPI_MODE_DIO , MODE_DOUT = ESP_IMAGE_SPI_MODE_DOUT , MODE_FAST_READ = ESP_IMAGE_SPI_MODE_FAST_READ , MODE_SLOW_READ = ESP_IMAGE_SPI_MODE_SLOW_READ , MODE_QIO = 0 , MODE_QOUT = 1 , MODE_DIO = 2 , MODE_DOUT = 15 , MODE_SLOW_READ = 0xFE , MODE_FAST_READ = 0xFF , MODE_QIO = 0 , MODE_QOUT = 1 , MODE_DIO = 2 , MODE_DOUT = 15 , MODE_SLOW_READ = 0xFE , MODE_FAST_READ = 0xFF } |
| enum | SPIFlashSpeed { SPEED_40MHZ = 0 , SPEED_26MHZ = 1 , SPEED_20MHZ = 2 , SPEED_80MHZ = 0x0f , SPEED_40MHZ = 0 , SPEED_26MHZ = 1 , SPEED_20MHZ = 2 , SPEED_80MHZ = 15 , SPEED_40MHZ = 0 , SPEED_26MHZ = 1 , SPEED_20MHZ = 2 , SPEED_80MHZ = 15 } |
| enum | SPIFlashSize { SIZE_1MBIT = ESP_IMAGE_FLASH_SIZE_1MB , SIZE_2MBIT = ESP_IMAGE_FLASH_SIZE_2MB , SIZE_4MBIT = ESP_IMAGE_FLASH_SIZE_4MB , SIZE_8MBIT = ESP_IMAGE_FLASH_SIZE_8MB , SIZE_16MBIT = ESP_IMAGE_FLASH_SIZE_16MB , SIZE_32MBIT = 0xFF , SIZE_4MBIT = 0 , SIZE_2MBIT = 1 , SIZE_8MBIT = 2 , SIZE_16MBIT = 3 , SIZE_32MBIT = 4 , SIZE_1MBIT = 0xFF , SIZE_4MBIT = 0 , SIZE_2MBIT = 1 , SIZE_8MBIT = 2 , SIZE_16MBIT = 3 , SIZE_32MBIT = 4 , SIZE_1MBIT = 0xFF } |
Functions | |
| uint32_t | flashmem_write_internal (const void *from, uint32_t toaddr, uint32_t size) |
| write to flash memory More... | |
| uint32_t | flashmem_read_internal (void *to, uint32_t fromaddr, uint32_t size) |
| Read from flash memory. More... | |
| flash_addr_t | flashmem_get_address (const void *memptr) |
| Obtain the flash memory address for a memory pointer. More... | |
| uint32_t | flashmem_write (const void *from, flash_addr_t toaddr, uint32_t size) |
| Write a block of data to flash. More... | |
| uint32_t | flashmem_read (void *to, flash_addr_t fromaddr, uint32_t size) |
| Read a block of data from flash. More... | |
| bool | flashmem_erase_sector (flash_sector_t sector_id) |
| Erase a single flash sector. More... | |
| SPIFlashInfo | flashmem_get_info (void) |
| Get flash memory information block. More... | |
| SPIFlashSize | flashmem_get_size_type (void) |
| Returns a number indicating the size of flash memory chip. More... | |
| flash_addr_t | flashmem_get_size_bytes (void) |
| get the total flash memory size More... | |
| flash_sector_t | flashmem_get_size_sectors (void) |
| Get the total number of flash sectors. More... | |
| flash_sector_t | flashmem_find_sector (flash_addr_t address, flash_addr_t *pstart, flash_addr_t *pend) |
| Helper function: find the flash sector in which an address resides. More... | |
| flash_sector_t | flashmem_get_sector_of_address (flash_addr_t addr) |
| Get sector number containing the given address. More... | |
| uint32_t | flashmem_get_first_free_block_address (void) |
| uint32_t | spi_flash_get_id (void) |
Detailed Description
Macro Definition Documentation
◆ FLASH_TOTAL_SEC_COUNT
| #define FLASH_TOTAL_SEC_COUNT (flashmem_get_size_sectors()) |
◆ INTERNAL_FLASH_READ_UNIT_SIZE
| #define INTERNAL_FLASH_READ_UNIT_SIZE 4 |
◆ INTERNAL_FLASH_SECTOR_SIZE
| #define INTERNAL_FLASH_SECTOR_SIZE SPI_FLASH_SEC_SIZE |
◆ INTERNAL_FLASH_START_ADDRESS
| #define INTERNAL_FLASH_START_ADDRESS 0x40200000 |
◆ INTERNAL_FLASH_WRITE_UNIT_SIZE
| #define INTERNAL_FLASH_WRITE_UNIT_SIZE 4 |
Enumeration Type Documentation
◆ SPIFlashMode
| enum SPIFlashMode |
◆ SPIFlashSize
| enum SPIFlashSize |
◆ SPIFlashSpeed
| enum SPIFlashSpeed |
Function Documentation
◆ flashmem_erase_sector()
| bool flashmem_erase_sector | ( | flash_sector_t | sector_id | ) |
Erase a single flash sector.
- Parameters
-
sector_id the sector to erase
- Return values
-
true on success
◆ flashmem_find_sector()
| flash_sector_t flashmem_find_sector | ( | flash_addr_t | address, |
| flash_addr_t * | pstart, | ||
| flash_addr_t * | pend | ||
| ) |
Helper function: find the flash sector in which an address resides.
- Parameters
-
address pstart OUT/OPTIONAL: Start of sector containing the given address pend OUT/OPTIONAL: Last address in sector
- Return values
-
flash_sector_t Sector number for the given address
- Note
- Optional parameters may be null
◆ flashmem_get_address()
| flash_addr_t flashmem_get_address | ( | const void * | memptr | ) |
Obtain the flash memory address for a memory pointer.
- Parameters
-
memptr
- Return values
-
flash_addr_t Offset from start of flash memory
- Note
- If memptr is not in valid flash memory it will return an offset which exceeds the internal flash memory size.
- The flash location is dependent on where rBoot has mapped the firmware.
◆ flashmem_get_first_free_block_address()
|
inline |
◆ flashmem_get_info()
| SPIFlashInfo flashmem_get_info | ( | void | ) |
Get flash memory information block.
- Return values
-
SPIFlashInfo Information block
◆ flashmem_get_sector_of_address()
| flash_sector_t flashmem_get_sector_of_address | ( | flash_addr_t | addr | ) |
Get sector number containing the given address.
- Parameters
-
addr
- Return values
-
flash_sector_t sector number
◆ flashmem_get_size_bytes()
| flash_addr_t flashmem_get_size_bytes | ( | void | ) |
get the total flash memory size
- Return values
-
flash_addr_t Size in bytes
◆ flashmem_get_size_sectors()
| flash_sector_t flashmem_get_size_sectors | ( | void | ) |
Get the total number of flash sectors.
- Return values
-
uint16_t Sector count
◆ flashmem_get_size_type()
| SPIFlashSize flashmem_get_size_type | ( | void | ) |
Returns a number indicating the size of flash memory chip.
- Return values
-
SPIFlashSize
◆ flashmem_read()
| uint32_t flashmem_read | ( | void * | to, |
| flash_addr_t | fromaddr, | ||
| uint32_t | size | ||
| ) |
Read a block of data from flash.
- Parameters
-
to Buffer to store data fromaddr Flash location to start reading size Number of bytes to read
- Return values
-
uint32_t Number of bytes written
- Note
- none of the parameters need to be aligned
◆ flashmem_read_internal()
| uint32_t flashmem_read_internal | ( | void * | to, |
| uint32_t | fromaddr, | ||
| uint32_t | size | ||
| ) |
Read from flash memory.
- 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
- Return values
-
uint32_t Number of bytes actually read
- Note
- All parameters MUST be aligned to 4-byte word boundaries, including the RAM pointer
◆ flashmem_write()
| uint32_t flashmem_write | ( | const void * | from, |
| flash_addr_t | toaddr, | ||
| uint32_t | size | ||
| ) |
Write a block of data to flash.
- Parameters
-
from Buffer to obtain data from toaddr Flash location to start writing size Number of bytes to write
- Return values
-
uint32_t Number of bytes written
- Note
- None of the parameters need to be aligned
◆ flashmem_write_internal()
| uint32_t flashmem_write_internal | ( | const void * | from, |
| uint32_t | toaddr, | ||
| uint32_t | size | ||
| ) |
write to flash memory
- 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
- Return values
-
uint32_t Number of bytes actually written
- Note
- All parameters MUST be aligned to 4-byte word boundaries, including the RAM pointer
◆ spi_flash_get_id()
| uint32_t spi_flash_get_id | ( | void | ) |
1.9.1