Arduino IDE: загрузка файлов в SPIFFS

SPIFFS — это файловая система, организованная во внешней флеш-памяти микроконтроллера. Большая часть этой памяти используется для хранения загрузчика, программы, системных настроек. SPIFFS же позволяет использовать оставшуюся часть для нужд программиста: для хранения изображений, шрифтов, аудиофайлов, настроек и т.п.

С файлами в SPIFFS можно делать всё то же, что и с файлами на SD-карте, за исключением некоторых моментов, которые пока ещё не реализованы. Так, на момент написания данного урока SPIFFS не работает с папками, так что все файлы хранятся одним списком.

Как скопировать файл с компьютера в SPIFFS? Для среды разработки Arduino IDE существует программный инструмент, который позволяет это сделать. Для его установки потребуется выполнить несколько шагов.

1. Убедиться, что в Arduino IDE установлен пакет поддержки плат ESP32. Как установить этот пакет, подробно рассказывается в нашем уроке: Настройка Arduino IDE для ESP32

2. Скачать архив с модулем по ссылке:
https://github.com/me-no-dev/arduino-esp32fs-plugin/releases/

3. Создать папки tools/ESP32FS/tool в домашней папке со скетчами. Узнать путь до домашней папки можно в настройках Arduino IDE, в поле «Размещение папки скетчей». В результате должна появиться такая структура папок:

С:/Users/имя_пользователя/Documents/Arduino/tools/ESP32FS/tool/

4. Скопировать в эту папку файл esp32fs.jar, взятый из архива.

5. Перезапустить Arduino IDE. Готово!

Загрузка файлов в SPIFFS

Файлы, которые требуется записать в память контроллера необходимо скопировать в папку «data» внутри папки скетча. Например, будет такой путь:

C:\Sketches\my_sketch\data

Затем, в меню Инструменты выбираем пункт: ESP32 Sketch Data Upload

и в появившемся списке выбираем пункт SPIFFS.

В строке состояния появится сообщение:

SPIFFS Uploading Image...

А в консоли побегут строчки сообщений о ходе процесса:

[SPIFFS] data   : C:\Sketches\my_sketch\data
[SPIFFS] offset : 0
[SPIFFS] start  : 2686976
[SPIFFS] size   : 1408
[SPIFFS] page   : 256
[SPIFFS] block  : 4096
->/nasalization24.vlw
->/nasalization48.vlw
[SPIFFS] upload : C:\Users\Zeus\AppData\Local\Temp\arduino_build_164362/my_sketch.spiffs.bin
[SPIFFS] address: 2686976
[SPIFFS] port   : COM3
[SPIFFS] speed  : 921600
[SPIFFS] mode   : dio
[SPIFFS] freq   : 80m

->esptool.py v4.5.1
->Serial port COM3
->Connecting....
->Chip is ESP32-D0WD (revision v1.0)
->Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
->Crystal is 40MHz
->MAC: 40:f5:20:78:ce:6c
->Uploading stub...
->Running stub...
->Stub running...
->Changing baud rate to 921600
->Changed.
->Configuring flash size...
->Auto-detected Flash size: 4MB
->Flash will be erased from 0x00290000 to 0x003effff...
->Compressed 1441792 bytes to 78066...
->Writing at 0x00290000... (20 %)
->Writing at 0x002a6111... (40 %)
->Writing at 0x002c0a1b... (60 %)
->Writing at 0x002e3489... (80 %)
->Writing at 0x003088a2... (100 %)
->Wrote 1441792 bytes (78066 compressed) at 0x00290000 in 7.1 seconds (effective 1629.1 kbit/s)...
->Hash of data verified.

После загрузки файла в строке состояния Arduino IDE появится сообщение:

SPIFFS Image Uploaded

Готово! Теперь контроллер в любой момент подгружать файлы из SPIFFS и работать с ними, как если бы они находились на SD-карте.

Возможные проблемы

На момент написания данного урока, данный модуль расширения не работал для плат ESP32-S3. Для решения этой проблемы рекомендуется установить модифицированный модуль по ссылке:

https://github.com/lorol/arduino-esp32fs-plugin/releases


Изменено:

Arduino IDE: загрузка файлов в SPIFFS: Один комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.