I’d like to modify Non-Volatile Storage on an ESP32.
Platformio’s Updating Binary Data documenation seems promising, but the access method is something like
extern const uint8_t aws_root_ca_pem_start asm("_binary_src_aws_root_ca_pem_start");
Whereas when I look at the espressif NVS example, I see access methods like
err = nvs_get_i32(my_handle, "restart_counter", &restart_counter);
Am I missing something, or will I need to use espressif’s toolchain instead of Platformio’s for that? Thanks!
You’ve confused two things here: When embedding binary data using the directive
the PIO as well Espressif toolchain will do the exact same thing, that is read the file, inject it into the binary at some point and make it visible as a symbol name by the namescheme
_binary_<path>_end. The binary gets then uploaded to the flash.
This API on the other hand (read this) allocates a section in flash for the creation of a non-volatile data storage system.
These are two ways to store data. The NVS API should also be available in PlatformIO if it’s included in the ESP-IDF version that PIO distributes (see Releases · platformio/platform-espressif32 · GitHub).
Yup, you’re completely right! Thanks for that.
For reference to others, here’s the steps I followed:
I used this guide as a reference.