ESP32のフラッシュメモリにおいて、不揮発なデータ(電源オンオフやプログラムの再ロードでも消えない)を書き込む方法について調べるといくつか見つかるので、違いを整理しておく。
ESP32において、不揮発なデータを書き込める領域は2か所あるみたい。このサイズはパーティション設定によって異なるのかも。
- nvs: 20KiB?
- spiffs: 大きめ
これをみると、nvsの方には設定などのデータ、spiffsの方にはキャッシュなど大き目のデータを保存しておくことになる?
書き込む方法(ライブラリ)もいくつかあります。
- Preferences.h
- EEPROM.h
- SPIFFS.h
コードを読むとPreferences.hとEEPROM.hはnvsに書き込んでそうな関数コールがみつかった。(ので、nvsに書き込むと考えればよい?) ちなみに、EEPROM.hはDeprecatedになっているっぽい。
あとはフラッシュメモリの書き換え回数は1万回とか有限なので、頻繁に書きかえる用途で使うのはダメそう。