Blog
Compiler l’ESP32 : erreurs, options, vitesse
Erreurs de compilation, chaînes d’outils manquantes, batailles de permissions avec Windows — les compilations ESP32 échouent de façons prévisibles, et les correctifs sont courts une fois qu’on sait quoi chercher. Les réponses aux questions de compilation qui bloquent vraiment.
Impossible de compiler ma carte de dev ESP32 ?
Le paquet de cartes est, en pratique, le coupable habituel : si Outils → Carte ne montre aucune entrée ESP32, ou que la compilation meurt avec « exec: gcc: No such file » dès le départ, le core arduino-esp32 est manquant ou à moitié installé. Réinstallez-le depuis le Gestionnaire de cartes, redémarrez l’IDE et recompilez. Un paquet corrompu se cache derrière la plupart des rapports « can’t compile ». La FAQ sur l’IDE Arduino parcourt l’installation dans l’ordre.
Comment compiler et téléverser du code C vers un ESP32 ?
Utilisez ESP-IDF ou PlatformIO — les deux compilent du C pur. Avec ESP-IDF : idf.py build, puis idf.py -p COM5 flash. Avec PlatformIO : un platformio.ini avec framework = espidf, et pio run -t upload fait les deux étapes. Votre main.c va dans le dossier main/ dans les deux cas.
Puis-je construire un ESP32 from scratch ?
Pas la puce elle-même — l’ESP32 est un SoC fabriqué en fonderie avec un frontend RF et une exigence de quartz à 40 MHz ; personne ne construit ça à la main. Ce que vous pouvez construire from scratch, c’est la carte autour d’un module nu : soudez un module ESP32-WROOM sur un PCB support avec la zone d’antenne dégagée, ajoutez une puce USB-série et un régulateur 3,3 V, et vous avez construit un kit de développement.
Impossible de compiler sur ESP32 : accès refusé ?
« Access is denied » pendant une compilation est propre à Windows et signifie que le compilateur ne peut pas écrire dans le dossier du projet. L’antivirus qui verrouille le dossier de compilation, OneDrive qui le synchronise, ou un chemin sous Program Files — n’importe lequel déclenche ça. Déplacez le projet vers C:dev ou un autre chemin simple, excluez le dossier de l’analyse antivirus, et recompilez. Sur ma machine, le coupable était OneDrive ; désynchroniser le dossier a tout réglé en une minute.
Combien de fois peut-on compiler un ESP32 ?
Compiler, c’est juste des écritures disque — des milliers de compilations ne feront pas de mal à la puce. La limite d’endurance, c’est les cycles d’effacement du flash, environ 10 000 par secteur, et seul le flash compte contre elle. Une carte flashée une fois par jour est tranquille pour 27 ans ; compiler sans flasher est gratuit pour toujours.
Pourquoi ma première compilation est-elle si lente ?
La première compilation compile le SDK — attendez 5 à 10 minutes ; tout ce qui suit est incrémental. Choisissez votre cible une fois (idf.py set-target) et ne nettoyez pas par habitude. Sous Linux et macOS, ccache donne de vrais gains de vitesse.
Ma bibliothèque BLE ne compile pas ?
Les croquis BLE échouent en général parce que la bibliothèque a été construite pour un core plus ancien — arduino-esp32 2.x et 3.x ont changé l’API BLE, et une bibliothèque épinglée à l’un casse sur l’autre. Épinglez le core à la version nommée dans le README de la bibliothèque, ou mettez à jour la bibliothèque. La recherche la plus rapide pour ça, c’est « can’t compile esp32 dev board ble library » — c’est un cluster connu d’incompatibilités de versions.
Que signifient toutes ces options de compilateur ?
-Os optimise la taille, le défaut de l’ESP32 ; -DARDUINO_ARCH_ESP32 est défini par le core, pas par vous. Vous ne touchez presque jamais aux options dans Arduino. Dans PlatformIO, board_build_flags ajoute les vôtres ; dans ESP-IDF, les options de compilation vivent dans menuconfig au lieu de la ligne de commande. La FAQ PlatformIO contient la syntaxe des options.
Peut-on compiler le firmware ESP AT pour l’ESP32 S3 ?
Oui — ESP-AT prend officiellement en charge l’ESP32-S3 depuis la v3.0, et vous le compilez depuis le dépôt esp-at comme un projet ESP-IDF normal. Il vous faut un module flash de 4 Mo ou plus ; l’USB natif de la S3 ouvre aussi la voie AT+USBSERIAL.
Puis-je faire tourner Android sur un ESP32 ?
Non — l’ESP32 est un microcontrôleur, pas un processeur applicatif ; Android a besoin d’une MMU et de beaucoup plus de RAM. Ce que les gens qui cherchent « how to build android for esp32 » veulent en général, c’est une application Android qui parle à leur carte : une application compagnon MQTT ou BLE, avec l’ESP32 qui exécute un croquis serveur. Ce binôme est simple — voyez la FAQ sur le flash pour le côté carte.
Les projets de ce sujet s’exécutent directement dans le simulateur gratuit de sensbench : circuit pré-câblé, firmware inclus, sans compte ni installation.