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-файл.

Подключаем отладочную плату к USB-порту компьютера. Микроконтроллер должен находиться в режиме загрузчика.
В поле COM-порт выбираем нужный порт.
Затем следует прочитать память МК, нажав кнопку Прочитать. Если программе удастся извлечь информацию о модели ESP32, то она сама заполнит поля: Модель МК, Скорость и Адрес таблицы.
Также в поле Файловый раздел появится список spiffs разделов, которые можно выбрать. Почему разделы называются spiffs, если мы работаем с littlefs? Да потому что Arduino IDE, когда прошивает ESP32, называет этот дополнительный раздел spiffs по старой памяти.
Можно посмотреть, что уже лежит в памяти, нажав кнопку Файлы. В окне Журнал появится дерево каталогов с файлами.
Наконец в поле Файл выбираем нужный файл. В поле Имя в littlefs вводим имя файла в littlefs (можно не менять). И жмём «Создать образ и прошить раздел».
Суть в том, что нельзя просто так взять и записать отдельный файл в LittleFS. Нужно извлечь весь текущий раздел памяти, отведенный для LittleFS, затем добавить в него новый файл, собрать заново в бинарный файл и зашить обратно в микроконтроллер. Именно этим и занимается данная программа.