133 lines
7.5 KiB
Makefile
133 lines
7.5 KiB
Makefile
# ============================================================
|
||
# 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 <cible> BOARD=<carte>"
|
||
@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é"
|