, , , , ,

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