Quand on dĂ©bogue une application web, un console.log() ou un point d’arrĂȘt dans un IDE suffit. Mais dans le monde de l’embarquĂ©, les rĂšgles changent du tout au tout. Pas d’Ă©cran, pas de systĂšme d’exploitation complet, des ressources mesurĂ©es et des contraintes temps rĂ©el. Pourtant, les outils et mĂ©thodes existent â encore faut-il savoir lesquels choisir et comment les utiliser efficacement.
Pourquoi le débogage embarqué est-il si différent ?
Un microcontrĂŽleur ne tourne pas sous Windows ou Linux classique. Il exĂ©cute un firmware nu (bare-metal) ou un RTOS allĂ©gĂ©, sans interface utilisateur pour afficher l’Ă©tat du programme. Les ressources sont comptĂ©es : quelques centaines de kilo-octets de RAM, des horloges Ă quelques dizaines de mĂ©gahertz. Et surtout, le code interagit avec le monde physique : capteurs, actionneurs, bus de terrain. Une erreur logicielle peut causer un mouvement mĂ©canique dangereux ou une mesure fausse qui remonte dans toute la chaĂźne.
Le dĂ©bogage d’un systĂšme embarquĂ© exige donc de combiner plusieurs approches : matĂ©rielle, logicielle et systĂšme. Un bon dĂ©veloppeur embarquĂ© ne se limite pas Ă une seule technique â il les utilise toutes selon la nature du bug.
Les outils incontournables du diagnostic
Debugger matériel JTAG / SWD
Le debugger matĂ©riel est l’outil roi de l’embarquĂ©. Via une interface JTAG ou SWD (Serial Wire Debug), il permet de contrĂŽler l’exĂ©cution du microcontrĂŽleur en temps rĂ©el : poser des points d’arrĂȘt, inspecter la mĂ©moire, lire les registres, exĂ©cuter pas Ă pas. Des outils comme J-Link (SEGGER), ST-Link (STMicroelectronics) ou ESP-Prog (Espressif) offrent une compatibilitĂ© large avec des IDE comme VS Code, Eclipse ou directement en ligne de commande avec GDB.
Astuce pratique : le semi-hosting permet de rediriger les printf() du firmware vers la console de l’ordinateur via le cĂąble de dĂ©bogage, sans consommer de port UART matĂ©riel â trĂšs utile sous ESP-IDF.
Oscilloscope et analyseur logique
Quand le problĂšme est liĂ© Ă des signaux, des temporisations ou des protocoles de communication, le debugger logiciel ne suffit plus. Un oscilloscope numĂ©rique (mĂȘme d’entrĂ©e de gamme Ă 200-300 âŹ) permet de visualiser les formes d’onde rĂ©elles sur les broches du microcontrĂŽleur. Un analyseur logique, encore plus abordable (30-50 ⏠sur AliExpress), capture des dizaines de signaux numĂ©riques simultanĂ©ment â idĂ©al pour dĂ©boguer des bus SPI, I2C, UART ou CAN.