Compilation

Dans cette section nous allons te guider pour l'installation de tous les outils qui te permettront de compiler le projet pour le microcontrôleur.

Outils génériques

Nous allons tout d'abord installer les outils suivantes :

  • gdb-arm-none-eabi : gdb est un débuggeur, on installe ici la version pour l'architecture arm sans os (none). Tu trouveras plus d'informations sur gdb par ici. Pour les notions d'architecture, tu peux toujours lire la page sur l'architecture matérielle sur wikipédia.
  • gcc-arm-none-eabi : gcc est un compilateur pour le langage C. On a besoin du compilateur C car le code partagé entre l’électronique et l'informatique est écris en C. On installe la version pour l'architecture arm ici.
  • openocd : cet outil permet de communiquer avec le microcontrôleur : c'est grâce à lui que l'on peut envoyer des exécutables dessus et les déboguer.

Pour cela, il te suffit d'exécuter dans un terminal (sur Ubuntu):

sudo apt update
sudo apt install git gdb-arm-none-eabi gcc-arm-none-eabi openocd

La première commande mets à jour les paquets disponibles, la deuxième les installe.

Customisation de gdb

Bien que très puissant, gdb propose une interface d'un autre siècle. On va rendre cette interface plus agréable.

  1. On récupère un fichier tout fait qui rend l'interface de gdb supportable :
    wget -P ~ git.io/.gdbinit
    
  2. On autorise le chargement de ce fichier par gdb :
    echo "set auto-load safe-path /" >> ~/.gdbinit
    

Rust

Pour installer Rust, tu peux te référer aux instructions sur rustup.rs. Les paramètres par défaut sont très bien. Si tu as bien installé Rust, quand tu ouvres un nouveau terminal et que tu tapes :

rustc --version

Il devrait s'afficher un texte qui ressemble à ça (tu auras certainement une version plus récente, là il s'agit de la version du 1 Août 2018) :

rustc 1.25.0-nightly (b5392f545 2018-01-08)

Utilitaires

Pour travailler plus efficacement, nous allons aussi installer quelques outils.

Obligatoire : rustfmt

Dans un projet informatique, plusieurs personnes ont des conventions d'alignement du texte différent, différentes manières d'aller à la ligne dans les déclarations, etc. Dans le but d'uniformiser le code produit par tout le monde, on utilise un outil rustfmt qui va venir formater le code. Plus besoin de se prendre la tête avec l'indentation ou les retours à la ligne dans les gros appels de fonctions : on lance rustfmt et le code est formaté.

Cet outil est obligatoire, autrement ton installation ne fonctionnera pas. Pour l'installer il suffit de taper dans un terminal :

rustup component add rustfmt-preview

Optionnel : cargo-edit

L'outil cargo-edit permet d'ajouter facilement des librairies depuis la ligne de commande dans un projet. Pour plus d'informations tu peux aller lire la description de l'outil par ici.

cargo install cargo-edit

Optionnel cargo-clone

L'outil cargo-clone permet de récupérer le code source de n'importe quelle librairie disponible sur crates.io en une ligne de commande.

cargo install cargo-clone