esp-idf/examples/storage/spiffsgen
He Yin Ling c906e2afee test: update example and unit tests with new import roles:
tiny_test_fw is a python package now. import it using normal way.
2019-12-07 10:34:54 +08:00
..
main Merge branch 'bugfix/strict_prototypes' into 'master' 2019-08-05 09:38:39 +08:00
spiffs_image spiffs: move spiffsgen example with other storage related examples 2019-04-26 22:37:41 +08:00
CMakeLists.txt spiffs: move spiffsgen example with other storage related examples 2019-04-26 22:37:41 +08:00
example_test.py test: update example and unit tests with new import roles: 2019-12-07 10:34:54 +08:00
Makefile spiffs,make: change spiffsgen build API 2019-06-21 10:58:40 +08:00
partitions_example.csv global: update note in the partition tables 2019-07-27 10:28:16 +02:00
README.md examples: change default build instructions in docs to CMake 2019-08-02 16:32:46 +05:30
sdkconfig.defaults examples: remove non-existent options from sdkconfig.defaults 2019-07-29 04:57:38 +02:00

SPIFFS Image Generation on Build Example

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

This example demonstrates how to use the SPIFFS image generation tool spiffsgen.py to automatically create a SPIFFS filesystem image from the contents of a host folder during build, with an option of automatically flashing the created image on invocation of idf.py -p PORT flash. For more information, see description of spiffsgen.py on the ESP-IDF Programming Guide under API Reference > Storage > SPIFFS Filesystem.

The following gives an overview of the example:

  1. There is a directory spiffs_image from which the SPIFFS filesystem image will be created.

  2. The function spiffs_create_partition_image is used to specify that a SPIFFS image should be created during build for the storage partition. For CMake, it is called from the main component's CMakeLists.txt; for Make, from the project Makefile. FLASH_IN_PROJECT specifies that the created image should be flashed on invocation of idf.py -p PORT flash together with app, bootloader, partition table, etc. For both build systems, the image is created on the example's build directory with the output filename storage.bin.

  3. Upon invocation of idf.py -p PORT flash monitor, application loads and finds there is already a valid SPIFFS filesystem in the storage partition with files same as those in spiffs_image directory. The application is then able to read those files.

How to use example

Build and flash

To run the example, type the following command:

# Make
make flash monitor

or

# CMake
idf.py -p PORT flash monitor

(To exit the serial monitor, type Ctrl-].)

See the Getting Started Guide for full steps to configure and use ESP-IDF to build projects.

Example output

Here is the example's console output:

...
I (10) example: Initializing SPIFFS
I (110) example: Partition size: total: 896321, used: 171935
I (110) example: Reading hello.txt
I (110) example: Read from hello.txt: Hello World!
I (110) example: Computing alice.txt MD5 hash
I (330) example: Computed MD5 hash of alice.txt: deeb71f585cbb3ae5f7976d5127faf2a
I (330) example: SPIFFS unmounted

The logic of the example is contained in a single source file, and it should be relatively simple to match points in its execution with the log outputs above.