14 #include <esp_idf_version.h>
15 #if ESP_IDF_VERSION_MAJOR < 5
16 #include_next <esp_spi_flash.h>
18 #include <spi_flash_mmap.h>
20 #include <rom/spi_flash.h>
21 #include <esp_app_format.h>
35 #define INTERNAL_FLASH_WRITE_UNIT_SIZE 4
36 #define INTERNAL_FLASH_READ_UNIT_SIZE 4
38 #define FLASH_TOTAL_SEC_COUNT (flashmem_get_size_sectors())
41 #define SYS_PARAM_SEC_COUNT 4
42 #define FLASH_WORK_SEC_COUNT (FLASH_TOTAL_SEC_COUNT - SYS_PARAM_SEC_COUNT)
44 #define INTERNAL_FLASH_SECTOR_SIZE SPI_FLASH_SEC_SIZE
45 #define INTERNAL_FLASH_SIZE ((FLASH_WORK_SEC_COUNT)*INTERNAL_FLASH_SECTOR_SIZE)
92 auto phys = spi_flash_cache2phys(memptr);
93 return (phys == SPI_FLASH_CACHE2PHYS_FAIL) ? 0 : phys;
SPIFlashInfo flashmem_get_info()
Get flash memory information block.
uint32_t flashmem_read(void *to, uint32_t fromaddr, uint32_t size)
Read a block of data from flash.
SPIFlashSpeed
Definition: Esp32/Components/spi_flash/include/esp_spi_flash.h:56
bool flashmem_erase_sector(uint32_t sector_id)
Erase a single flash sector.
uint8_t flashmem_get_size_type()
Returns a number indicating the size of flash memory chip.
uint32_t flashmem_write(const void *from, uint32_t toaddr, uint32_t size)
Write a block of data to flash.
uint32_t spi_flash_get_id(void)
uint16_t flashmem_get_size_sectors()
Get the total number of flash sectors.
SPIFlashMode
Definition: Esp32/Components/spi_flash/include/esp_spi_flash.h:47
static uint32_t flashmem_get_address(const void *memptr)
Obtain the flash memory address for a memory pointer.
Definition: Esp32/Components/spi_flash/include/esp_spi_flash.h:90
SPIFlashSize
Definition: Esp32/Components/spi_flash/include/esp_spi_flash.h:63
uint32_t flashmem_get_sector_of_address(uint32_t addr)
Get sector number containing the given address.
uint32_t flashmem_get_size_bytes()
get the total flash memory size
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.
@ SPEED_80MHZ
Definition: Esp32/Components/spi_flash/include/esp_spi_flash.h:60
@ SPEED_26MHZ
Definition: Esp32/Components/spi_flash/include/esp_spi_flash.h:58
@ SPEED_20MHZ
Definition: Esp32/Components/spi_flash/include/esp_spi_flash.h:59
@ SPEED_40MHZ
Definition: Esp32/Components/spi_flash/include/esp_spi_flash.h:57
@ MODE_QOUT
Definition: Esp32/Components/spi_flash/include/esp_spi_flash.h:49
@ MODE_FAST_READ
Definition: Esp32/Components/spi_flash/include/esp_spi_flash.h:52
@ MODE_DOUT
Definition: Esp32/Components/spi_flash/include/esp_spi_flash.h:51
@ MODE_DIO
Definition: Esp32/Components/spi_flash/include/esp_spi_flash.h:50
@ MODE_QIO
Definition: Esp32/Components/spi_flash/include/esp_spi_flash.h:48
@ MODE_SLOW_READ
Definition: Esp32/Components/spi_flash/include/esp_spi_flash.h:53
@ SIZE_32MBIT
Not listed.
Definition: Esp32/Components/spi_flash/include/esp_spi_flash.h:69
@ SIZE_1MBIT
Definition: Esp32/Components/spi_flash/include/esp_spi_flash.h:64
@ SIZE_16MBIT
Definition: Esp32/Components/spi_flash/include/esp_spi_flash.h:68
@ SIZE_8MBIT
Definition: Esp32/Components/spi_flash/include/esp_spi_flash.h:67
@ SIZE_4MBIT
Definition: Esp32/Components/spi_flash/include/esp_spi_flash.h:66
@ SIZE_2MBIT
Definition: Esp32/Components/spi_flash/include/esp_spi_flash.h:65
SPI Flash memory information block. Copied from bootloader header. See esp_image_header_t.
Definition: Esp32/Components/spi_flash/include/esp_spi_flash.h:77
SPIFlashSpeed speed
Definition: Esp32/Components/spi_flash/include/esp_spi_flash.h:79
SPIFlashSize size
Definition: Esp32/Components/spi_flash/include/esp_spi_flash.h:80
SPIFlashMode mode
Definition: Esp32/Components/spi_flash/include/esp_spi_flash.h:78