SPIFFSが非推奨となり、今度はLittleFSに移行していきます。
この時に、今まで作成してきたプログラムをLittleFSに対応させるためには、SPIFFSクラスの命令をすべて置き換える必要があります。ありがたいことに、SPIFFSの命令は、LitteleFSになっても、クラス名を変えるだけでそのまま利用できます。
SPIFFSのサンプルをLittleFSに対応させる
プログラムの大きな変更をすることなく、LittleFSに対応させることを想定してブログアップしています。SPIFFSのサンプルプログラム「SPIFFS_Test」をもとにして、LittleFSに対応させる変更点です。
まず、そのまま「SPIFFS_Test」を実行します。
実行結果が右図です。下線部分はSPIFFSに1MBを書き込む時間と読み込む時間を表しています。
書き込み 約37秒
読み出し 約0.5秒
LittleFSに変更させるため、プログラム変更します。
#include "FS.h" #define LITTLEFS on #ifdef LITTLEFS //LITTLEFSが定義されている時実行 #include "LittleFS.h" #define SPIFFS LittleFS #else //LITTLEFSが定義されてない時 #include "SPIFFS.h" #endif /* You only need to format SPIFFS the first time you run a test or else use the SPIFFS plugin to create a partition https://github.com/me-no-dev/arduino-esp32fs-plugin */ #define FORMAT_SPIFFS_IF_FAILED true
3行目から9行目が追加した部分です。「#ifndef」 のディレクティを使い、「LITTLEFS」が定義されているときは5行目でLittleFSをインクルードし、6行目でプログラム中の「SPIFFS」を「LittleFS」に置き換えるように#defineにて定義しています。
書き込み 約5秒
読み出し 約0.2秒
これの2つの実行結果を比較すると、LittleFSの方が書き込みで約7倍、読み込みで約2倍速いことが確認できます。
この変更したプログラムでは、SPIFFSとLittleFSの両方に対応しており、3行目の「#define」文をコメントアウトすると、SPIFFS対応になります。
LittleFSに対応させるプログラム変更
SPIFFSからLittleFSに変更するとき、プログラム中の「#include "SPIFFS.h"」の1行を次の2行に置き換えます。
#include "LittleFS.h" #define SPIFFS LittleFS
これだけの変更で、LittleFS対応となります。


0 件のコメント:
コメントを投稿