🛠 Gérer la flash 4 Mo : partitions et LittleFS

ESP8266 (módulo ESP-12E) · avance · Schéma : IMG-esp8266-esp-12e-avance-3-esp8266-partitions-littlefs.svg — Répartition de la flash 4 Mo d'un module ESP-12E : bootloader, deux slots de sketch OTA, NVS et partition LittleFS, avec le câble série branché pour le premier flashage.

Objetivos

Comprender dónde residen los datos en la memoria flash QSPI de 4 MB del ESP-12E y utilizar LittleFS, el sistema de archivos moderno del core esp8266 (sucesor de SPIFFS, más robusto ante cortes de corriente). Los menús «Flash Size» y «Flash Mode» de Arduino IDE seleccionan el esquema de particiones grabado al inicio de la flash: bootloader, dos slots de sketch para OTA, zona NVS (calibración Wi-Fi + parámetros) y partición de archivos. Una inconsistencia entre la flash real del módulo y el preset elegido provoca bucles de reinicio (boot loops) característicos. Aprenderás a formatear, escribir, releer un archivo de configuración y mostrar el espacio utilizado.

Material

Código completo

#include <ESP8266WiFi.h>
#include <LittleFS.h>

void setup {
  Serial.begin(115200);

  // Montage ; formatage seulement au premier lancement
  if (!LittleFS.begin) {
    Serial.println("LittleFS absent -> formatage (efface TOUT)");
    if (!LittleFS.format) { Serial.println("Echec format : verifie Flash Size 4MB"); while (true) yield; }
    LittleFS.begin;
  }

  // Etat de la partition
  fs::FSInfo info;
  LittleFS.info(info);
  Serial.printf("Flash totale : %u Ko | LittleFS : %u Ko utilises sur %u Ko\n",
                ESP.getFlashChipSize / 1024, info.usedBytes / 1024, info.totalBytes / 1024);

  // Ecriture d'un fichier de configuration
  {
    File f = LittleFS.open("/config.txt", "w");
    if (f) { f.println("ssid=mon-reseau"); f.println("seuil=42"); f.close; }
  }

  // Relecture ligne par ligne
  File f = LittleFS.open("/config.txt", "r");
  if (f) {
    Serial.println("--- config.txt ---");
    while (f.available) Serial.write(f.read);
    f.close;
  } else {
    Serial.println("Fichier absent");
  }

  // Inventaire
  File d = LittleFS.open("/");
  if (d.isDirectory) {
    File e = d.openNextFile;
    while (e) { Serial.printf("%s (%u octets)\n", e.name, e.size); e = d.openNextFile; }
  }
}

void loop { yield; }

Verificación esperada

En la primera ejecución: «LittleFS ausente -> formateando», luego el inventario muestra config.txt con sus dos líneas. La línea de estado debe indicar aproximadamente 4096 KB de flash total (si no, tu preset es incorrecto). Vuelve a ejecutar sin modificar el código: ya no se formatea, el archivo se conserva — bórralo desde el monitor o vuelve a formatear para verificar el ciclo nuevamente. Sube un archivo con la herramienta LittleFS Data Upload: aparecerá en el inventario tras reiniciar.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales