Files
esp32_test_littlefs/Makefile
T
2026-06-08 17:03:18 +02:00

143 lines
7.7 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ============================================================
# 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)
#
# partitions
#
partition: check-board
@echo ""
@echo " ── flash de la partition pour $(BOARD) ───────"
python3 -m esptool --chip esp32-s3 --port $(PORT) --baud 460800 write-flash 0x8000 .pio/build/$(BOARD)/partitions.bin
# ─────────────────────────────────────────────────────────────
# 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é"