Le xcc700 est un compilateur C très petit et léger conçu spécifiquement pour le microcontrôleur ESP32. C’est comme une mini version de GCC ou clang, mais ce système présente certaines limites. Au lieu de générer des fichiers Windows .exe, il produit des binaires ELF pour le processeur Xtensa, qui est l’architecture de processeur utilisée dans ESP32. Parce qu’il est si petit, le compilateur lui-même peut s’exécuter sur l’ESP32 et compiler du code C sur l’appareil lui-même, ce que vous ne voyez normalement pas ; la plupart des compilateurs sont beaucoup trop volumineux pour tenir sur des microcontrôleurs. la plus grande force de ce système est que l’ensemble du compilateur est implémenté à peu près 700 lignes de code C, il est donc facile à lire, à comprendre et également à modifier.
Cela prend en charge les sous-ensembles utiles du langage C, des éléments tels que int, char, pointeur, tableaux, boucles while, if/else, opérations arithmétiques et appels de fonction. Cependant, il ne peut pas compiler les fonctionnalités avancées telles que les boucles for, les structures, les unions, les opérations à virgule flottante et les bibliothèques standard complètes. Pour cette raison, il n’est pas en mesure de remplacer les compilateurs complets comme CCGmais aide plutôt à comprendre comment fonctionne réellement un compilateur.
Même s’il présente certaines limites, il est très utile pour l’éducation et l’expérimentation. Vous pouvez compiler xcc700 sur un PC normal et l’utiliser comme un petit compilateur croisé, ou même l’intégrer dans Micrologiciel ESP32 pour compiler et exécuter du code au moment de l’exécution à l’aide d’outils tels que elf_loader d’ESP-IDF.
Retrouvez l’histoire de Raspberry Pi dans cette vidéo :

-
Lot de 4 Carte Développement ESP32-C3, Module ESP32-C3 Mini, WiFi 2,4GHz et Bluetooth 5.0 Le, Processeur RISC-V 32 Bits 160MHz, pour Arduino MicroPython, IoT Maison Intelligente Réseau de Capteurs
-
AYWHP ESP32-C6 Mini ESP32 WiFi Bluetooth Carte de développement avec processeur 32 bits, fréquence de course 160 MHz, USB Type-C ESP32, lieu de développement 2,4 GHz, compatible avec Arduino (2 pièces
