Note:
Data Structures | |
struct | lfs_spi_flash_bd_config_t |
Configuration structure for the SPI flash block device. More... | |
Macros | |
#define | LFS_SPI_FLASH_BD_TRACE(...) |
Enable trace for this driver by defining this macro. More... | |
Functions | |
void | lfs_spi_flash_bd_get_default_config (lfs_spi_flash_bd_config_t *bd_cfg) |
Fetches the default configuration for the block device for use with the lfs_spi_flash_bd_create() function. More... | |
void | lfs_spi_flash_bd_configure_memory (const struct lfs_config *lfs_cfg, uint32_t address, uint32_t region_size) |
Configures the memory region used by littlefs. More... | |
cy_rslt_t | lfs_spi_flash_bd_create (struct lfs_config *lfs_cfg, const lfs_spi_flash_bd_config_t *bd_cfg) |
Initializes the SPI flash and populates the lfs_config structure with the default values. More... | |
void | lfs_spi_flash_bd_destroy (const struct lfs_config *lfs_cfg) |
De-initializes the SPI flash and frees the resources. More... | |
int | lfs_spi_flash_bd_read (const struct lfs_config *lfs_cfg, lfs_block_t block, lfs_off_t off, void *buffer, lfs_size_t size) |
Reads the data starting from a given block and offset. More... | |
int | lfs_spi_flash_bd_prog (const struct lfs_config *lfs_cfg, lfs_block_t block, lfs_off_t off, const void *buffer, lfs_size_t size) |
Programs or writes the data starting from a given block and offset. More... | |
int | lfs_spi_flash_bd_erase (const struct lfs_config *lfs_cfg, lfs_block_t block) |
Erases a given block. More... | |
int | lfs_spi_flash_bd_sync (const struct lfs_config *lfs_cfg) |
Flushes the write cache when present. More... | |
int | lfs_spi_flash_bd_lock (const struct lfs_config *lfs_cfg) |
Locks or gets the mutex associated with this block device. More... | |
int | lfs_spi_flash_bd_unlock (const struct lfs_config *lfs_cfg) |
Unlocks or sets the mutex associated with this block device. More... | |
struct lfs_spi_flash_bd_config_t |
#define LFS_SPI_FLASH_BD_TRACE | ( | ... | ) |
Enable trace for this driver by defining this macro.
You must also define the global trace enable macro LFS_YES_TRACE.
void lfs_spi_flash_bd_get_default_config | ( | lfs_spi_flash_bd_config_t * | bd_cfg | ) |
Fetches the default configuration for the block device for use with the lfs_spi_flash_bd_create() function.
Default configuration: SFDP enabled, QSPI (IO0 to IO3) mode, 50 MHz clock.
bd_cfg | Pointer to the block device configuration structure. |
void lfs_spi_flash_bd_configure_memory | ( | const struct lfs_config * | lfs_cfg, |
uint32_t | address, | ||
uint32_t | region_size | ||
) |
Configures the memory region used by littlefs.
If this function is not called, the littlefs will use the whole size of the memory module. The function must be called before lfs_spi_flash_bd_create(). After de-initialization of littlefs, the settings configured by this function are lost.
lfs_cfg | The pointer to the block device configuration structure |
address | The start of a memory region available for littlefs. |
region_size | The size of a memory region available for littlefs. |
cy_rslt_t lfs_spi_flash_bd_create | ( | struct lfs_config * | lfs_cfg, |
const lfs_spi_flash_bd_config_t * | bd_cfg | ||
) |
Initializes the SPI flash and populates the lfs_config structure with the default values.
lfs_cfg | Pointer to the lfs_config structure that will be initialized with the default values. |
bd_cfg | Pointer to the block device configuration structure. |
void lfs_spi_flash_bd_destroy | ( | const struct lfs_config * | lfs_cfg | ) |
De-initializes the SPI flash and frees the resources.
lfs_cfg | Pointer to the lfs_config structure. |
int lfs_spi_flash_bd_read | ( | const struct lfs_config * | lfs_cfg, |
lfs_block_t | block, | ||
lfs_off_t | off, | ||
void * | buffer, | ||
lfs_size_t | size | ||
) |
Reads the data starting from a given block and offset.
Calls the non-blocking read API from serial-flash and waits on a semaphore until read completes if COMPONENTS=RTOS_AWARE is added in the makefile. Otherwise, calls the blocking read function.
lfs_cfg | Pointer to the lfs_config structure. |
block | Block number from which read should begin. |
off | Offset in the block from which read should begin. |
buffer | Pointer to the buffer to store the data read from the memory. |
size | Number of bytes to read. |
int lfs_spi_flash_bd_prog | ( | const struct lfs_config * | lfs_cfg, |
lfs_block_t | block, | ||
lfs_off_t | off, | ||
const void * | buffer, | ||
lfs_size_t | size | ||
) |
Programs or writes the data starting from a given block and offset.
The block must have been previously erased. This is a blocking function.
lfs_cfg | Pointer to the lfs_config structure. |
block | Block number from which write should begin. |
off | Offset in the block from which write should begin. |
buffer | Pointer to the buffer that contains the data to be written. |
size | Number of bytes to write. |
int lfs_spi_flash_bd_erase | ( | const struct lfs_config * | lfs_cfg, |
lfs_block_t | block | ||
) |
Erases a given block.
A block must be erased before being programmed. This is a blocking function.
lfs_cfg | Pointer to the lfs_config structure. |
block | Block number to be erased. |
int lfs_spi_flash_bd_sync | ( | const struct lfs_config * | lfs_cfg | ) |
Flushes the write cache when present.
Simply returns zero because QSPI block does not have any write cache in MMIO mode.
lfs_cfg | Pointer to the lfs_config structure. |
int lfs_spi_flash_bd_lock | ( | const struct lfs_config * | lfs_cfg | ) |
Locks or gets the mutex associated with this block device.
This function is internally called by the littlefs APIs when LFS_THREADSAFE is defined. User should call this function directly only if the other block device functions are directly called and thread-safety is required in that case.
lfs_cfg | Pointer to the lfs_config structure. |
int lfs_spi_flash_bd_unlock | ( | const struct lfs_config * | lfs_cfg | ) |
Unlocks or sets the mutex associated with this block device.
This function is internally called by the littlefs APIs when LFS_THREADSAFE is defined. User should call this function directly only if the other block device functions are directly called and thread-safety is required in that case.
lfs_cfg | Pointer to the lfs_config structure. |