← Accueil
Technologies et plateformes
Langages de programmation, plateformes matérielles, bus et outils — le choix suit les exigences du projet, pas mes préférences.
Cette page donne un aperçu compact des technologies avec lesquelles je travaille. La liste n'est pas exhaustive — elle nomme les plateformes, langages et outils fréquents dans mes projets ou que je considère comme particulièrement pertinents pour le développement embarqué. Si votre plateforme spécifique n'apparaît pas ici, cela ne signifie pas nécessairement un manque d'expérience ; en projets embarqués, les concepts se transposent souvent vers d'autres plateformes dès que la tâche est claire.
Langages
1. Langages de programmation et HDL
Choix du langage selon la tâche : proche du matériel et économe en ressources en C ou assembleur, orienté objet en C++, logique FPGA en VHDL et SystemVerilog, outils et analyses en Python.
- C — langage principal pour firmware microcontrôleur, du bare-metal à FreeRTOS
- C++ — pour applications embarquées plus complexes avec structures objet, conforme MISRA si nécessaire
- Assembleur — sous contraintes extrêmes, pour pilotes matériels, code de boot et rétro-ingénierie
- VHDL — conceptions FPGA à forte clarté structurelle
- SystemVerilog — développement FPGA moderne, testbenches, vérification
- Verilog — description FPGA classique
- Python — automatisation de tests, scripts outils, analyse de données, backends web
- Kotlin — pour applications Android d'accompagnement aux appareils embarqués
- JavaScript / HTML / CSS — frontends web et interfaces de configuration
MCU
2. Plateformes microcontrôleur
Expérience de toutes les plateformes microcontrôleur établies sur le marché embarqué — du ARM Cortex haute performance à la puce Atmel optimisée en coût, comme microcontrôleur nu ou comme plateforme carte type Arduino ou BeagleBone.
- ARM Cortex-M — la plateforme standard pour exigences moyennes
- ARM Cortex-A — quand Linux ou plus de puissance de calcul sont requis
- ESP32 — applications embarquées Wi-Fi/Bluetooth
- Atmel / Microchip AVR — p. ex. famille ATmega pour projets sensibles au coût
- Arduino — prototypage rapide, enseignement et démonstrations
- BeagleBone — plateforme ARM Cortex-A avec Linux pour applications plus exigeantes
- Microcontrôleurs à mémoire minimale — bare-metal, sans OS temps réel (projet Stihl en exemple, voir références)
- autres plateformes sur demande
FPGA
3. Plateformes FPGA
Développement FPGA de la spécification à la vérification. Accent sur les produits Xilinx, familier des chaînes d'outils modernes et méthodes de vérification.
- Xilinx Artix-7 — FPGA économiques pour tâches de contrôle et traitement du signal
- Xilinx Zynq — plateforme combinée ARM+FPGA pour systèmes complexes
- Vivado — chaîne pour synthèse, implémentation et programmation
- Icarus Verilog / Verilator — simulateurs open-source pour itération rapide
- Testbenches SystemVerilog — vérification structurée des conceptions FPGA
Bus
4. Bus et protocoles de communication
Expérience des bus établis dans les environnements automobile, industriel et embarqué — de l'implémentation proche du matériel au diagnostic.
- CAN / CAN FD — standard automobile et industriel
- MOST — bus infodivertissement avec expérience du projet Audi (voir références)
- Ethernet / EtherCAT — communication industrielle temps réel
- SPI / I²C / UART — interfaces standard pour capteurs et périphériques
- UDS (ISO 14229) — protocole de diagnostic pour calculateurs
- WebSocket / MQTT — pour connexions IoT et cloud
RTOS
5. Systèmes d'exploitation temps réel et frameworks
Choix de l'architecture logicielle selon les exigences du projet — du bare-metal sur microcontrôleurs limités aux systèmes d'exploitation temps réel multi-cœur complets.
- Bare-metal — quand mémoire et déterminisme priment
- FreeRTOS — standard de fait pour RTOS sur microcontrôleur
- Architectures multi-cœur — répartition de tâches sur plusieurs cœurs
- Linux embarqué — sur plateformes type BeagleBone, quand les applications en bénéficient
Outils
6. Outils, frameworks de test et IDE
Les outils sont des moyens. Je travaille avec ce qui convient au projet — et je m'approprie rapidement des chaînes d'outils inconnues si elles sont pertinentes.
- Vector CANoe / CAPL — standard pour tests automobile et simulation bus
- LabView — logiciel de mesure et commande
- Robot Framework — automatisation de tests bout en bout
- Bancs HIL — hardware-in-the-loop pour tests système intégrés
- Pulsonix — outil schéma et routage PCB
- Vivado — chaîne FPGA Xilinx
- Git / GitLab — gestion de version et revue de code
- Wireshark — analyse réseau et bus
Web/App
7. Technologies web et app (logiciel d'accompagnement)
Quand des appareils embarqués nécessitent une interface de configuration, un tableau de bord ou une application mobile, je peux livrer aussi le logiciel d'accompagnement.
- JavaScript / HTML / CSS — frontends web
- Chart.js — visualisation de données dans le navigateur
- Python / Flask — backends web
- Node.js — composants serveur
- Socket.IO / WebSocket / MQTT — transmission de données temps réel
- Kotlin — applications Android pour appareils embarqués
- API REST — interfaces standardisées entre embarqué et cloud
Ce qui n'est pas dans cette liste
Cette page nomme les technologies fréquemment utilisées — ce n'est pas un catalogue complet. Si votre plateforme, votre langage ou votre outil n'y figure pas, il vaut tout de même la peine d'en discuter. En développement embarqué, ce qui compte au final n'est pas tant quelle chaîne d'outils précise on connaît, mais à quelle vitesse on en adopte une nouvelle et à quelle profondeur les concepts sous-jacents sont compris.