LittleFS — файловая система для микроконтроллера

LittleFS — это отказоустойчивая файловая система с журнальной архитектурой, специально разработанная для микроконтроллеров и встраиваемых систем с ограниченными ресурсами (RAM и ROM). В отличие от устаревшей SPIFFS, она обеспечивает сохранность данных при внезапном отключении питания за счёт механизма копирования при записи (copy-on-write), выполняет динамическое выравнивание износа для продления срока службы флеш-памяти и использует ограниченный объём оперативной памяти, не зависящий от размера файловой системы.

LittleFS широко используется в платформах ESP32, STM32, nRF52, RP2040 и операционных системах реального времени, таких как Mbed OS, NuttX, FreeRTOS. Среди проектов RobotClass, где используется LittleFS, можно отметить модуль умного дисплея Фотон.

В этой инструкции разберемся с тем, как загрузить файлы в LittleFS.

Загрузка файлов в память ESP32

Поместить файл в LittleFS можно разными способами:

  • написать программу для МК, которая скопирует файл, например, с microSD-карты в LittleFS;
  • написать программу для МК, которая будет ловить файлы по UART с компьютера и сохранять их в LittleFS;
  • использовать/написать программу для ПК, которая сформирует специальную прошивку с файлами внутри и прошьет ей микроконтроллер.

В этой инструкции мы разберем именно последний вариант. Хотя он и выглядит сложным, на деле большую часть работы выполняют готовые приложения: esptool и mklittlefs.

Итак, скачиваем приложение по ссылке ниже.

Распаковываем архив и запускаем exe-файл.

Инструмент загрузки файлов на LittleFS

Подключаем отладочную плату к USB-порту компьютера. Микроконтроллер должен находиться в режиме загрузчика.

В поле COM-порт выбираем нужный порт.

Затем следует прочитать память МК, нажав кнопку Прочитать. Если программе удастся извлечь информацию о модели ESP32, то она сама заполнит поля: Модель МК, Скорость и Адрес таблицы.

Также в поле Файловый раздел появится список spiffs разделов, которые можно выбрать. Почему разделы называются spiffs, если мы работаем с littlefs? Да потому что Arduino IDE, когда прошивает ESP32, называет этот дополнительный раздел spiffs по старой памяти.

Можно посмотреть, что уже лежит в памяти, нажав кнопку Файлы. В окне Журнал появится дерево каталогов с файлами.

Наконец в поле Файл выбираем нужный файл. В поле Имя в littlefs вводим имя файла в littlefs (можно не менять). И жмём «Создать образ и прошить раздел».

Суть в том, что нельзя просто так взять и записать отдельный файл в LittleFS. Нужно извлечь весь текущий раздел памяти, отведенный для LittleFS, затем добавить в него новый файл, собрать заново в бинарный файл и зашить обратно в микроконтроллер. Именно этим и занимается данная программа.


Изменено:

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

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

Комментарий
Имя
E-mail

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