Langages

C est le langage le plus utilisé en système embarqué. Il est bas niveau, proche du matériel, très efficient, temps réel, fiable et peu énergivore. Le codage en C est fastidieux et technique.

C++ est basé sur C, avec des fonctionnalités en plus, dont la programmation objet.

Python est un langage haut-niveau. Par rapport au C++ : il permet de coder plus rapidement, est plus énergivore, plus exigeant pour le système, moins fiable et moins temps réel. Sa version MicroPython est plus intéressante en électronique, sans égaler C/C++.

Autres alternatives :

  • Java, à mi-chemin entre C++ et Python ;
  • Rust, un langage moderne, avec les mêmes forces que C/C++ ;
  • les langages assembleurs, pour un codage optimal, mais très fastidieux.

Environnement de Développement Intégré (EDI)

Le développement se fait avec un EDI, Environnement de Développement Intégré (IDE en anglais). L’EDI permet de coder, compiler, tester et déboguer un programme.

Bibliothèque

Une bibliothèque logicielle (library) rassemble des composants (fonctions, classes) déjà codés. Une fois intégrés à un projet, les composants sont utilisables au travers d’une interface de programmation (API).

Des bibliothèques permettent notamment d’interagir avec le matériel du système embarqué (driver).

Git

Git est un outil de versionnage (version control). Le versionnage permet des sauvegardes régulières (commit) du code source.

Git peut s’utiliser avec un dépôt distant (remote repository). Le code et les données de versionnage transitent du dépôt local au dépôt distant (push), et inversement (pull).

Git peut s’utiliser en équipe (développement distribué). Chaque développeur possède une copie du dépôt (clone) distant sur sa machine. Le dépôt distant est géré par un administrateur.

Git permet de créer plusieurs branches (branch) d’un projet. Un développeur crée une branche, code et teste une fonctionnalité sans impacter les autres, puis les branches sont fusionnées (merge).

Des plateformes en ligne permettent de gérer les projets Git. Ex : GitHub et GitLab.