Segger ajoute le support du multicœur temps réel à son outil d’analyse du comportement des systèmes embarqués

Segger SystemView multicore

Le spécialiste allemand en outils matériels et logiciels de débogage et de programmation de cibles embarquées Segger, vient de mettre jour son environnement SystemView avec la prise en charge des systèmes multicœur pour la vérification en temps réel et la visualisation du code embarqué sur une cible.

Pour rappel, SystemView est un outil d'enregistrement et de visualisation en temps réel conçu pour analyser et fournir des informations sur le comportement d'exécution d’un système embarqués.

Désormais, avec l’outil SystemView for Multicore, il est possible d’identifier les inefficacités d’un code embarqué, les interactions imprévues et les conflits de ressources dans un équipement doté de plusieurs cœurs de processeurs. Et ce afin de s'assurer que le code fonctionne comme prévu, notamment dans le cadre de systèmes complexes avec plusieurs threads et interruptions.

Cette prise en charge des architectures multicœurs signifie notamment qu'aucune synchronisation inter-cœur n'est requise pour l'enregistrement multicœur. En d’autres termes, les différents cœurs analysés ne sont pas obligés de tous fonctionner à la même vitesse. Dans l’approche proposée par Segger, chaque cœur peut fonctionner sur sa propre horloge, et les horodatages sont générés avec un seul cycle de CPU, jusqu'à une nanoseconde de résolution. Ces horodatages sont corrélés et grâce à un système de datation unifiée sont affichés sur tous les cœurs. Et ce afin que les utilisateurs puissent voir ce qui se passe sur chaque cœur, en synchronisation, au fil du temps. 

En enregistrant les données de surveillance d'un système embarqué à travers l’activité du débogueur, les développeurs peuvent en outre visualiser en détail les tâches, les interruptions et l'exécution de l’ordonnancement temporel du logiciel, tout en documentant également la fréquence, l'ordre et le temps d'exécution. Grâce à la technologie de transfert en temps réel mis en place par Segger, une seule sonde de débogage, en l’occurrence ici le modèle J-Link de la société, peut désormais collecter des données à partir de plusieurs cœurs en temps réel. Les données sont transmises à l'hôte et sont analysées et visualisées instantanément. Tous les événements sont enregistrés et peuvent être sauvegardés à des fins d'analyse et de documentation.

Concrètement, pour chaque cœur qui exécute un micrologiciel instrumenté, les événements enregistrables incluent les changements de contexte de tâche, les exécutions d'interruption, les appels de fonction, l'utilisation de la pile, les échantillons de données, les messages de journal, etc. Chaque cœur de processeur enregistre les événements sur son propre canal SystemView, comme il le ferait dans un scénario d'enregistrement monocœur. Chaque cœur peut ainsi être visualisé individuellement ou en tant que groupe combiné de tous les cœurs, ce qui facilite la visualisation et la vérification de l'interaction du processeur et de la synchronisation associée. 

SystemView fonctionne sous Linux, macOS et Windows et peut fonctionner avec des architectures matérielles ARM, Intel ou Apple Silicon.

Enfin, signalons que la licence du logiciel SystemView comprend des exemples d'enregistrements qui aident les utilisateurs à obtenir un aperçu rapide du fonctionnement de l'outil.