La sonde de débogage est sortie ce matin. Cet article est la traduction de la présentation de la sonde qui a été publiée sur le site de la Fondation Raspberry Pi (Auteur Eben Upton). Vous trouverez sur le blog un article plus technique que celui-ci en cliquant sur ce lien.
Au sommaire :
Sonde de débogage Raspberry Pi : un kit de débogage plug-and-play pour moins de 15€.
Depuis la sortie du Raspberry Pi Pico et du microcontrôleur RP2040 en janvier 2021, les gens utilisent un Pico pour déboguer des programmes exécutés sur un autre PICO. Inspirée par cette tendance, la Fondation aujourd’hui la sonde de débogage Raspberry Pi, une solution matérielle de débogage complète pour les microcontrôleurs ARM, basée sur un RP2040, et vendue au prix de 12 dollars seulement (note de framboise314 : les anglais parlent en hors-taxe).
La sonde de débogage Raspberry Pi fournit :
- Un pont USB à Série – Serial Wire Debug (SWD)
- Un adaptateur USB série générique
- Des câbles pour se connecter à un ordinateur hôte et à la cible de débogage.
Bien qu’elle ait été conçue pour le Raspberry Pi Pico et d’autres cibles basées sur RP2040, la sonde de débogage Raspberry Pi peut être utilisée pour déboguer n’importe quel microcontrôleur ARM qui fournit un port SWD avec 3,3 volts sur les entrées/sorties.
Chasse aux bugs
Si vous êtes comme moi, vous aimez écrire des programmes informatiques, mais vous détestez traquer les bugs qui en résultent. Mais la chasse aux bugs est un mal nécessaire, et si vous voulez chasser les bugs, tôt ou tard, vous aurez besoin d’un débogueur. Si la plupart des débogueurs offrent un ensemble commun de fonctionnalités de base (pas à pas, points d’arrêt, inspection des variables et de la mémoire), ces fonctionnalités sont fournies de différentes manières selon le langage et l’environnement d’exploitation choisis.
Vous utilisez peut-être un langage de programmation interprété de haut niveau, comme Python, où les capacités de débogage sont directement intégrées à l’environnement d’exécution. Ou peut-être utilisez-vous un langage de programmation compilé de bas niveau, comme le C, mais votre programme s’exécute sous un système d’exploitation, comme Linux ; dans ce cas, un débogueur comme gdb, souvent exécuté sur la même machine, peut interagir avec votre programme pendant qu’il s’exécute, pour fournir ces mêmes capacités.
Mais que se passe-t-il si votre programme C s’exécute directement sur le processeur, sans système d’exploitation (on parle alors de fonctionnement « bare metal« ) ? Que se passe-t-il si vous écrivez un système d’exploitation ? Dans ce cas, vous aurez besoin d’un moyen d’accéder aux capacités de débogage intégrées au processeur lui-même. C’est là qu’intervient une sonde de débogage.
C’est quoi, une sonde de débogage ?
Tous les microcontrôleurs modernes basés sur l’architecture ARM, y compris le RP2040, mettent en œuvre l’architecture de débogage CoreSight d’ARM. Chaque cœur de processeur, comme le Cortex-M0+ utilisé dans le RP2040, fournit un port d’accès (AP) qui peut être utilisé pour effectuer un pas unique du programme, définir des points d’arrêt, observer les valeurs des registres du processeur et accéder à la mémoire et aux périphériques via l’interface du bus du processeur.
Le microcontrôleur lui-même fournit un port de débogage (DP), qui est connecté en externe aux broches du boîtier et en interne à chaque port d’accès du système. Le RP2040 expose son port de débogage via un port SWD (Serial Wire Debug) à faible nombre de broches : en utilisant le protocole SWD sur ce port, un ordinateur hôte peut contrôler le port d’accès de chaque cœur, afin de déboguer un programme exécuté sur le cœur.
Une sonde de débogage fournit un pont entre l’USB et le protocole SWD. Bien que cela ne soit pas strictement nécessaire si l’ordinateur hôte est un Raspberry Pi (vous pouvez connecter le port SWD de la cible directement au connecteur GPIO d’un Raspberry Pi), il est beaucoup plus pratique de se connecter via USB. Et si vous utilisez un PC ou un Mac, l’USB est votre seule option.
La sonde de débogage Raspberry Pi expose les signaux SWD sur un connecteur JST à trois broches, conforme à la spécification du connecteur de débogage Raspberry Pi. Des câbles adaptateurs sont fournis pour se connecter sans soudure à la breadboard (planche à pain, plaque de prototypage), et au connecteur de débogage sur les Raspberry Pi Pico H et WH.
ARM a normalisé le protocole utilisé pour communiquer par USB entre un ordinateur hôte et une sonde de débogage. La sonde de débogage Raspberry Pi est conforme à la norme CMSIS-DAP et fonctionne donc directement avec de nombreuses plateformes logicielles de débogage existantes, y compris notre préférée, OpenOCD.
Communication série
Nous souhaitons souvent établir une connexion console série entre un microcontrôleur cible et un ordinateur hôte. Cela fournit un moyen simple d’interagir avec le logiciel s’exécutant sur la cible, et de récupérer les données de journalisation et autres données de diagnostic. Si l’ordinateur hôte est un Raspberry Pi, vous pouvez utiliser l’un des périphériques UART exposés via le connecteur GPIO. Mais si vous utilisez un PC ou un Mac, il est très peu probable que vous ayez accès à un port série intégré.
La sonde de débogage Raspberry Pi fonctionne comme un adaptateur série USB, sur la même connexion USB que le pont SWD. Elle expose les signaux UART sur un second connecteur JST à trois broches, toujours en conformité avec la spécification du connecteur de débogage Raspberry Pi.
Pour les utilisateurs qui n’ont pas besoin de la fonctionnalité de débogage, le faible prix de la sonde de débogage Raspberry Pi en fait une alternative rentable aux autres adaptateurs série USB. Elle a largement remplacé le câble FTDI, autrefois omniprésent, comme adaptateur préféré chez Pi Towers.
Crédits
Le projet Raspberry Pi Debug Probe a été mené par James Adams, qui a initié le concept et conçu le matériel. Jonathan Bell a écrit le logiciel, en s’inspirant du projet DapperMime. John Cowan-Hughes a conçu le coffret en plastique et les mécanismes d’emballage plutôt soignés. Jack Willis a réalisé le graphisme de l’emballage. Rose Nott a dirigé la chaîne d’approvisionnement. Alasdair Allan et Andrew Scheller ont travaillé sur la documentation.
Sources
Article Original
https://www.raspberrypi.com/news/raspberry-pi-debug-probe-a-plug-and-play-debug-kit-for-12/
Documentation de la sonde
https://www.raspberrypi.com/documentation/microcontrollers/debug-probe.html
Il serait intéressant pour les makers, de regarder si on peut utiliser ce debugeur avec du code Arduino et Plateformio sur VS Code, en utilisant le portage Pico-Arduino https://github.com/earlephilhower/arduino-pico
Ping : Sonde de débogage Raspberry Pi : un kit de débogage plug-and-play pour moins de 15€.
Bonjour votre article est intéressant mais la fondation raspberry pi est bien gentille de nous proposer ce genre d outils mais peut être que l on devrait lui acheter pour debuger les sbc de la concurance.
Moi ça me donne envie d essayer des clones plutôt que d attendre la baisse des prix.
Désolé de ce coup de gueulle qui n’a rien avoir avec la qualité de vos efforts et votre travail.
Merci pour vos articles
Bruno