Comme beaucoup (trop) de développeur, mon pc de travail fonctionne sous Windows 10 or openThread fait appel à des outils Linux pour compiler. Dans la suite je vais vous décrire mon installation qui me permet de modifier le code dans un IDE digne de ce nom, de compiler ce même code comme si j’étais sous Linux et enfin de le programmer dans la cible avec les outils natif à mon os fournit par les fabricants de composants.
Environnement de compilation
Le plus simple est d’utiliser docker, d’autant qu’une image existe déjà !
Installation de docker sous Windows 10
Pas de difficulté particulière si ce n’est qu’il faut une version professionnel de Windows 10. Le lien vers la page de téléchargement de Docker Desktop : https://www.docker.com/get-started
A la fin de l’installation on ouvre une Invite de commandes Windows (pas le powershell) et l’on peut vérifier que docker est en route en lui demandant ça version :
Nous allons ensuite chercher l’image docker qui nous intéresse :
docker pull openthread/environment:latest
Pour faciliter la modification ultérieur des fichier sources depuis un IDE sous Windows nous allons activer le partage de disque sous docker. Pour cela on va dans la partie « Setting/Ressources/File sharing » de docker desktop et l’on sélectionne le disque que l’on souhaite partager :
J’ai créé un répertoire spécifique de partage sur mon disque « c » de Windows à l’emplacement « C:_DEV\docker_share » et pour simplifier la suite il sera monté à l’emplacement « /mnt » de l’image Linux. Il est temps de lancer un container :
docker run -it -v c:/_DEV/docker_share:/mnt --rm openthread/environment bash
Dans ce shell Linux nous allons effectuer un enchainement de commandes :
- positionnement dans le répertoire partagé :
cd /mnt
- Clone du repo Git :
git clone https://github.com/openthread/openthread
- On se place dans le répertoire cloné :
cd openthread
- Installation de la toolchain et autres dépendances :
./script/bootstrap
- Setup de l’environnement :
./bootstrap
Nous voilà prêt à effectuer la compilation de notre premier firmware, pour ce préparer à l’étape suivante qui est la mise en place d’un sniffer, nous allons construire le firmware nécessaire pour la carte de développement de chez Nordic « nRF52840-DK » :
make -f examples/Makefile-nrf52840 USB=1
le binaire généré ce trouve dans le répertoire « /mnt/openthread/output/nrf52840/bin » mais a encore besoin d’une transformation pour le mettre au format hex :
arm-none-eabi-objcopy -O ihex output/nrf52840/bin/ot-rcp
output/nrf52840/bin/ot-rcp.hex
Il ne reste plus qu’à utiliser nRf Programmer depuis Windows pour charger ce nouveau firmware dans la cible.
Liens utiles
Listes des liens qui ont permis d’obtenir cette synthèse :