PLS veut simplifier le débogage des architectures multicoeurs temps réel, notamment dans l’automobile

[EMBEDDED WORLD] Destiné à l’analyse et au débogage des puces-sysèmes SoC haut de gamme, la version 4.10 de l’environnement Universal Debug Engine (UDE) de l’éditeur allemand PLS (Programmierbare Logik & Systeme) vise à simplifier le débogage des architectures multicœurs et l'analyse des applications critiques ...et temps réel mises en œuvre notamment dans l’automobile. Présentée en avant-première sur le salon Embedded World, cette plate-forme logicielle se dote de fonctions innovantes pour le débogage, les tests et l'analyse des systèmes multicœurs comme la famille des Aurix 2G d'Infineon, qui intègrent jusqu'à huit unités de traitement programmables, ou le processeur de vision S32V de NXP avec ses cœurs Cortex-A53.

Pour les analyser, l’outil autorise l'arrêt synchrone et le démarrage simultané de plusieurs cœurs hétérogènes. Et pour les cœurs ARM Cortex présents, PLS a étendu la prise en charge des jeux d'instructions et permet aux utilisateurs de déboguer le code dans les modes d'exécution AArch32 et AArch64 simultanément. De plus, avec l’outil UDE 4.10, les développeurs ont à leur disposition des options de visualisation graphique pour l’analyse du comportement de l’exécution des applications. Sur la base des données des traces enregistrées, la séquence du programme ou les appels de programme peuvent ainsi être rapidement affichés sur une échelle temporelle, quelle que soit la quantité de données analysées. Cette approche visuelle du déroulement du programme permet de tirer des conclusions plus facilement, notamment au niveau de la répartition de la charge ou de la synchronisation des logiciels distribués sur plusieurs cœurs.

Autre nouveauté à signaler, l'UDE 4.10 autorise la prise en charge des descriptions ASAP2 (ou A2L) pour le logiciel embarqué dans une ECU (Embedded Control Unit) utilisée dans le monde automobile. Ces fichiers ASAP2 décrivent comment les valeurs physiques, les courbes caractéristiques et autres paramètres des ECU sont “mappés” et convertis en variables de programme, en structures de mémoire interne et en types de données. L'utilisateur peut dès lors travailler directement avec les paramètres de l’ECU et les modifier sans avoir à se soucier de leur représentation réelle dans la mémoire du microcontrôleur. Bien entendu, dans cette approche, les valeurs choisies par les développeurs sont vérifiées pour leur validité et pour les plages autorisées.

Au-delà, cette version de l’outil UDE facilite le travail des développeurs d'algorithmes de séquencement d’horloge pour le module GTM (Generic Timer Module) de Bosch. Pour cette application, auparavant, seul le code assembleur était utilisé. Dorénavant le développement du code et le débogage peuvent se faire en conjonction avec des compilateurs du marché, comme ceux de Tasking ou de HighTec, en s'appuyant sur du code source écrit en C.

Pour la famille des Aurix 2G, le module de programmation intégré dans l’environnement UDE 4.10 a aussi été étendu avec la prise en charge des fonctions de mise à niveau du code par voie radio (SOTA, Software Over-the-Air).

Enfin, UDE 4.10 s'accompagne de deux nouveaux modules de trace pour le boîtier UAD2next (photo ci-contre), d'un périphérique d'accès pour le débogage et de la communication vers une cible via un bus CAN. Le premier module prend en charge la trace parallèle et offre une vitesse de transfert allant jusqu'à 250 Mbit/s, alors que le second prend en charge les interfaces de trace série bâties sur le protocole Aurora et transmet les données de trace générées par la cible via deux voies avec une vitesse de transfert allant jusqu'à 1,25 Gbit/s.