# ============================================================ # Makefile – LittleFS test ESP32-S3 # Usage : # make BOARD=esp32s3_zero # build # make flash BOARD=esp32s3_zero # build + flash firmware # make flashfs BOARD=esp32s3_zero # upload la partition LittleFS # make monitor BOARD=esp32s3_zero # ouvre le moniteur série # make all BOARD=esp32s3_n16r8v # build + flash firmware + flashfs # make clean # nettoyage # # Boards disponibles : # esp32s3_zero – Waveshare ESP32-S3-Zero (4 MB flash) # esp32s3_n16r8v – Generic ESP32-S3 N16R8V (16 MB flash / 8 MB PSRAM OPI) # ============================================================ # ── Valeur par défaut de la carte ────────────────────────────── BOARD ?= esp32s3_zero # ── Outil PlatformIO ─────────────────────────────────────────── PIO := pio # ── Port série (optionnel, PIO le détecte automatiquement) ───── # PORT ?= /dev/ttyUSB0 # ── Cibles valides ───────────────────────────────────────────── VALID_BOARDS := esp32s3_zero esp32s3_n16r8v .PHONY: all build flash flashfs monitor clean check-board help # ───────────────────────────────────────────────────────────── # help (cible par défaut si aucun argument) # ───────────────────────────────────────────────────────────── help: @echo "" @echo " ┌─────────────────────────────────────────────────────────┐" @echo " │ Makefile – LittleFS test ESP32-S3 │" @echo " └─────────────────────────────────────────────────────────┘" @echo "" @echo " Utilisation : make BOARD=" @echo "" @echo " Cartes disponibles :" @echo " esp32s3_zero – Waveshare ESP32-S3-Zero (4 MB flash)" @echo " esp32s3_n16r8v – ESP32-S3 N16R8V (16 MB flash / 8 MB PSRAM OPI)" @echo "" @echo " Cibles :" @echo " build – Compile le firmware (défaut)" @echo " flash – Compile et flashe le firmware" @echo " flashfs – Upload la partition LittleFS (répertoire data/)" @echo " monitor – Ouvre le moniteur série (Ctrl+C pour quitter)" @echo " all – build + flash + flashfs" @echo " clean – Supprime les artefacts de build" @echo " help – Affiche ce message" @echo "" @echo " Exemples :" @echo " make BOARD=esp32s3_zero" @echo " make flash BOARD=esp32s3_n16r8v" @echo " make all BOARD=esp32s3_zero" @echo "" # ───────────────────────────────────────────────────────────── # Vérification de la valeur de BOARD # ───────────────────────────────────────────────────────────── check-board: @if ! echo "$(VALID_BOARDS)" | grep -qw "$(BOARD)"; then \ echo ""; \ echo " ERREUR : carte inconnue '$(BOARD)'"; \ echo " Cartes valides : $(VALID_BOARDS)"; \ echo ""; \ exit 1; \ fi @echo " → Carte sélectionnée : $(BOARD)" # ───────────────────────────────────────────────────────────── # build – compilation uniquement # ───────────────────────────────────────────────────────────── build: check-board @echo "" @echo " ── Compilation pour $(BOARD) ──────────────────────────────" $(PIO) run -e $(BOARD) # ───────────────────────────────────────────────────────────── # flash – compilation + upload du firmware # ───────────────────────────────────────────────────────────── flash: check-board @echo "" @echo " ── Flash firmware → $(BOARD) ──────────────────────────────" ifdef PORT $(PIO) run -e $(BOARD) -t upload --upload-port $(PORT) else $(PIO) run -e $(BOARD) -t upload endif # ───────────────────────────────────────────────────────────── # flashfs – upload la partition LittleFS (contenu de data/) # ───────────────────────────────────────────────────────────── flashfs: check-board @echo "" @echo " ── Upload LittleFS partition → $(BOARD) ───────────────────" ifdef PORT $(PIO) run -e $(BOARD) -t uploadfs --upload-port $(PORT) else $(PIO) run -e $(BOARD) -t uploadfs endif # ───────────────────────────────────────────────────────────── # monitor – moniteur série # ───────────────────────────────────────────────────────────── monitor: check-board @echo "" @echo " ── Moniteur série ($(BOARD)) – Ctrl+C pour quitter ────────" ifdef PORT $(PIO) device monitor -e $(BOARD) --port $(PORT) else $(PIO) device monitor -e $(BOARD) endif # ───────────────────────────────────────────────────────────── # all – build + flash + flashfs # ───────────────────────────────────────────────────────────── all: build flash flashfs @echo "" @echo " ✔ all : build + flash + flashfs terminé pour $(BOARD)" # ───────────────────────────────────────────────────────────── # clean – suppression des artefacts # ───────────────────────────────────────────────────────────── clean: @echo "" @echo " ── Nettoyage ───────────────────────────────────────────────" $(PIO) run -t clean || true rm -rf .pio @echo " ✔ Nettoyage terminé"