Files
esp-idf/examples/storage
Adam Múdry 749c446a7e feat(esp_partition): Add esp_partition_flash_binary() CMake function
Add a new CMake function esp_partition_flash_binary() that provides a
unified API for registering partition data binaries to be flashed. It
replaces the direct esptool_py_flash_target calls scattered across
components (spiffs, fatfs, nvs_flash) with a single function that:

- Resolves partition offset from the partition table automatically
- Determines encryption requirements (auto-detect or ALWAYS_PLAINTEXT)
- Creates per-partition flash targets (e.g. idf.py <partition>-flash)
- Optionally includes the binary in `idf.py flash` via FLASH_IN_PROJECT

On the linux target, the function registers binaries for pre-loading
into the emulated flash. A build-time manifest (linux_flash_data.txt)
is generated via file(GENERATE), and partition_linux.c reads it at
runtime to copy each binary into the memory-mapped flash buffer at
the correct offset.

The partition_ops example is updated to use the new function and
includes a custom_partition with pre-built data to demonstrate the
full workflow, including on the linux target.
2026-04-10 15:22:50 +02:00
..

Storage Examples

Storage and management of user and system data in modules flash and on external memory / devices. This directory contains a range of examples ESP-IDF projects. These are intended to demonstrate the storage features, and to provide code that you can copy and adapt into your own projects.

Example Layout

The examples are grouped into sub-directories by category. Each category directory contains one or more example projects:

  • fatfs_basic minimal example of FatFS usage on SPI FLASH
  • fatfs_advanced example demonstrates how to use advanced features for working with FatFS such as automatic partition generation
  • custom_flash_driver example demonstrates how to implement your own flash chip driver by overriding the default driver.
  • emmc example demonstrates how to use an eMMC chip with an ESP device.
  • ext_flash_fatfs example demonstrates how to use FATFS partition with external SPI FLASH chip.
  • fatfsgen example demonstrates how to use FATFS partition generator
  • nvs_bootloader example demonstrates how to read data from NVS in the bootloader code.
  • nvs_rw_blob example demonstrates how to read and write a single integer value and a blob (binary large object) using NVS to preserve them between ESP module restarts.
  • nvs_rw_value example demonstrates how to read and write a single integer value using NVS.
  • nvs_rw_value_cxx example demonstrates how to read and write a single integer value using NVS (it uses the C++ NVS handle API).
  • nvs_console example demonstrates how to use NVS through an interactive console interface.
  • nvs_statistics example demonstrates how to obtain and interpret stats about used/available NVS storage entries in given NVS partition.
  • nvs_iteration example demonstrates iterating over entries of specific (or any) data type in given namespace, and the info to be obtained about the entries while doing so.
  • partition_api examples demonstrate how to use different partition APIs.
  • parttool example demonstrates common operations the partitions tool allows the user to perform.
  • sd_card examples demonstrate how to use an SD card with an ESP device.
  • semihost_vfs example demonstrates how to use semihosting VFS driver with ESP device.
  • spiffs example demonstrates how to use SPIFFS with ESP device.
  • spiffsgen example demonstrates how to use the SPIFFS image generation tool spiffsgen.py to automatically create a SPIFFS.
  • wear_levelling example demonstrates how to use wear levelling library and FATFS library to store files in a partition inside SPI flash.

More

See the README.md file in the upper level examples directory for more information about examples.