{{tag>dev riot riot-os toolchain esp32 iot}}
====== RIOT-OS: Installation de la toolchain pour ESP-WROOM-32 ======
Une image docker proposée par défaut intègre un ensemble de toolchains vers diverses cibles. Les notes proposée ci-dessous permettent de recréer une image docker de taille réduite (passant de 8 Go à 2 Go) intégrant les chaines de compilation vers les cibles ESP8266 et ESP32.
Clonage du dépot Git stockant le Dockerfile de l'environnement de build RIOT:
git clone git clone https://github.com/RIOT-OS/riotdocker.git
Créer une branche locale et modifier le fichier ./riotbuild/Dockerfile
cd riotdocker
git checkout -n esp32_only
cd riotbuild/
Créer l'image Docker à partir du Dockerfile
docker image build -t riot/riotbuild:esp_only .
Vérifier la présence de l'image:
$ docker image list
REPOSITORY TAG IMAGE ID CREATED SIZE
riot/riotbuild esp_only cb2069c5045e 4 days ago 2.49GB
Les sources de RIOT
git clone https://github.com/RIOT-OS/RIOT.git
Créer répertoire pour le projet
Pour lancer la compilation dans un environnement éphémère:
docker run --rm -i -t -u $UID -v $(pwd):/data/riotbuild riot/riotbuild ./dist/tools/compile_test/compile_test.py
Pour lancer la compilation dans un environnement interactif:
docker container run --name riotbuildenv --interactive --tty --privileged -v /dev:/dev -v $(pwd)/RIOT:/data/riotbuild riot/riotbuild:esp_only /bin/bash
Depuis l'environnement de build (le container docker en cours d'execution), on peut lancer la compilation du programme de test
# Plateforme native (compile un binaire exécutable directement dans l'environnement de buid)
make BOARD=native -C hello
# Cible ESP32
make BOARD=esp32-wroom-32 -C hello
Flasher le firmware précédemment compilé
$ journalctl -k --since "2 minutes ago"
-- Logs begin at Mon 2020-12-21 16:32:03 CET, end at Sat 2021-04-03 20:13:50 CEST. --
avril 03 20:12:37 node-7c87 kernel: usb 1-1: new full-speed USB device number 9 using xhci_hcd
...
avril 03 20:12:38 node-7c87 kernel: usb 1-1: cp210x converter now attached to ttyUSB0
Ici le port à utiliser est identifié: **ttyUSB0**
make BOARD=esp32-wroom-32 PORT=/dev/ttyUSB0 flash-only -C hello
===== Références =====
* https://doc.riot-os.org/group__cpu__esp32.html