Rp2040/Components/spi_flash/include/esp_spi_flash.h File Reference
#include <esp_system.h>
#include <sys/pgmspace.h>
Include dependency graph for Rp2040/Components/spi_flash/include/esp_spi_flash.h:

Go to the source code of this file.

Classes

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

Macros

#define SPI_FLASH_SEC_SIZE   4096
 
#define FLASH_TOTAL_SEC_COUNT   PICO_FLASH_SIZE_BYTES
 
#define SYS_PARAM_SEC_COUNT   4
 Number of flash sectors reserved for system parameters at start. More...
 
#define FLASH_WORK_SEC_COUNT   (FLASH_TOTAL_SEC_COUNT - SYS_PARAM_SEC_COUNT)
 
#define INTERNAL_FLASH_SECTOR_SIZE   SPI_FLASH_SEC_SIZE
 
#define INTERNAL_FLASH_SIZE   ((FLASH_WORK_SEC_COUNT)*INTERNAL_FLASH_SECTOR_SIZE)
 
#define INTERNAL_FLASH_START_ADDRESS   FLASH_BASE
 

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

static uint32_t flashmem_get_address (const void *memptr)
 Obtain the flash memory address for a memory pointer. More...
 
uint32_t flashmem_write (const void *from, uint32_t toaddr, uint32_t size)
 Write a block of data to flash. More...
 
uint32_t flashmem_read (void *to, uint32_t fromaddr, uint32_t size)
 Read a block of data from flash. More...
 
bool flashmem_erase_sector (uint32_t sector_id)
 Erase a single flash sector. More...
 
SPIFlashInfo flashmem_get_info ()
 Get flash memory information block. More...
 
uint8_t flashmem_get_size_type ()
 Returns a number indicating the size of flash memory chip. More...
 
uint32_t flashmem_get_size_bytes ()
 get the total flash memory size More...
 
uint16_t flashmem_get_size_sectors ()
 Get the total number of flash sectors. More...
 
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. More...
 
uint32_t flashmem_get_sector_of_address (uint32_t addr)
 Get sector number containing the given address. More...
 
uint32_t flashmem_get_first_free_block_address ()
 
uint32_t spi_flash_get_id (void)
 
void flashmem_sfdp_read (uint32_t addr, void *buffer, size_t count)
 

Macro Definition Documentation

◆ SPI_FLASH_SEC_SIZE

#define SPI_FLASH_SEC_SIZE   4096

Function Documentation

◆ flashmem_get_address()

static uint32_t flashmem_get_address ( const void *  memptr)
inlinestatic

Obtain the flash memory address for a memory pointer.

Parameters
memptr
Return values
uint32_tOffset 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.