Utilisé par nombre d’équipes de développement de logiciels embarqués, le débogueur Trace32 de Lauterbach pourra désormais être utilisé avec la carte en open source Portenta d’Arduino, annoncée lors du salon CES 2020 par l’organisme Arduino. ...Destinée aux développeurs processionnels, cette carte est architecturée autour du microcontrôleur STM32H7 de STMicroelectronics à double cœur Arm Cortex-M7 et M4.
L'Arduino Portenta, qui est le premier membre d’une gamme baptisée Arduino Pro, peut se programmer à travers l’IDE Arduino Pro, et exécute des programmes Arduino classiques (les “sketches”) au-dessus du système d'exploitation Arm Mbed, ainsi que des programmes écrits en MicroPython ou en JavaScript (à travers un interpréteur). Grâce à l’architecture à double cœur du circuit de ST, on peut donc exécuter du code Arduino sur le cœur Cortex-M4, tout en interprétant du code MicroPython sur le cœur Cortex-M7, ou l’inverse. C’est donc tout naturellement que le débogueur de Lauterbach s’inscrit dans cette volonté de fournir aux équipes de développeurs processionnels un environnement complet avec un débogueur de haut niveau.
Chaque carte Portenta H7 est désormais livrée avec un numéro de série unique qui s’affiche au sein de l’environnement Arduino IDE ou du débogueur Trace32. Ce numéro de série peut être utilisé pour obtenir une licence gratuite du débogueur de Lauterbach. Pour les utilisateurs qui ont besoin de fonctionnalités avancées, telles que le débogage JTAG et la trace en temps réel, un module de support est disponible. Ce module met les broches de débogage et de trace à la disposition du logiciel uTrace pour Cortex-M de manière transparente pour l'utilisateur.
Concrètement, le débogueur communique avec la carte Portenta à travers un câble USB et, pour activer l’interface GDB (GNU Debugger) sur la carte Portenta, il suffit de compiler la bibliothèque ThreadDebug d’Arduino. Ensuite, il est possible de se connecter directement à Trace32 et commencer le travail de débogage (inspection des variables, des registres, des contenus mémoire, des interruptions…).