Les éditeurs d’outils logiciels se pressent autour des microcontrôleurs Aurix à six cœurs d’Infineon[EDITION ABONNES] Dévoilée en octobre 2016, la deuxième génération des microcontrôleurs 32 bits multicœurs Aurix d'Infineon est censée répondre aux besoins anticipés des futurs véhicules électriques et voitures autonomes. Le très haut niveau d’intégration de ces SoC à six cœurs nécessite des outils de développement adaptés. Les éditeurs répondent présents. ... Lors de l’édition 2016 du salon Electronica qui s’est tenue début novembre, l’éditeur allemand d’outils logiciels de débogage, de test et d’analyse de performances PLS (Programmierbare Logik & Systeme) a dévoilé la version 4.7 de son produit phare, l’environnement UDE (Universal Debug Engine), en mettant l’accent sur la capacité de son produit à supporter « sans limitations » les fonctionnalités internes de débogage des microcontrôleurs multicœurs Aurix TC3xx d’Infineon.
Conçus pour satisfaire une large gamme d’applications automobiles, de la commande de moteur au contrôle de la transmission en passant par les applications du groupe motopropulseur (y compris dans les véhicules hybrides et électriques), les TC3xx sont censés satisfaire les contraintes de sûreté de fonctionnement typiquement rencontrées dans les airbags, les dispositifs de freinage et de direction assistée ou les systèmes d’assistance à la conduite à base de capteurs radar ou optiques. Jusqu'à six cœurs TriCore Par rapport aux actuels microcontrôleurs Aurix TC2xx dotés d’un maximum de trois cœurs TriCore, les circuits TC3xx peuvent embarquer jusqu’à six TriCore, tous cadencés à 300 MHz. Sachant que quatre d’entre eux disposent d’un mode lockstep pour assurer la tolérance aux fautes et la redondance des fonctionnalités et, partant, assurer une puissance de calcul encore plus élevée dans le cadre strict de la conformité au standard de sûreté de fonctionnement ISO 26262. Selon Infineon, la nouvelle famille de microcontrôleurs peut ainsi fournir une performance maximale de 2 400 DMips à des applications certifiées Asil-D (contre 740 DMips au maximum pour la précédente architecture Aurix). Les TC3xx peuvent par ailleurs embarquer jusqu’à 16 Mo de mémoire flash et plus de 6 Mo de RAM. Toutes ces caractéristiques, dixit Infineon, visent aussi à réduire les coûts de développement de 20% et à permettre l’exécution d’un plus grand nombre de fonctions sur un seul et même microcontrôleur comme, par exemple, le contrôle/commande du châssis et du groupe motopropulseur et des algorithmes de traitement radar et de fusion de capteurs de nouvelle génération. A cet égard, les TC3xx intègrent également un sous-système de traitement radar avec jusqu’à deux unités de calcul dédiées, cadencées à 300 MHz. Côté sécurité, la famille supporte une version améliorée du module programmable HSM (Hardware Security Module) avec, en particulier, de nouveaux accélérateurs de chiffrement asymétrique. En matière de connectivité, les TC3xx disposent d’une interface Gigabit Ethernet, jusqu’à 12 canaux CAN-FD et jusqu’à 24 canaux LIN. A noter que le produit phare de la gamme, le TC39xx, équipé de 16 Mo de flash et présenté en boîtier BGA-516 ou BGA-292, sera échantillonné au cours du premier trimestre 2017.
Afin que les concepteurs d’applications embarquées puissent utiliser concrètement la grande complexité et les performances des TC3xx, l’environnement UDE 4.7 de PLS, en tant que vrai débogueur multicœur, permet de contrôler, à partir d’une seule interface utilisateur, tous les cœurs TriCore. Un contrôle qui, en fonction des besoins, peut se faire sur l’ensemble des cœurs, sur des groupes de cœurs ou individuellement via un débogage en mode exécution traditionnel en utilisant des points d’arrêt ou en pas à pas. Dans ce mode, l’environnement UDE permet le lancement et l’arrêt de tous les cœurs en quasi-synchronisme par l’intermédiaire de la logique de débogage embarquée sur les puces. Selon PLS, le débogage d’applications complexes est par ailleurs simplifié grâce à des « points d’arrêt multicœurs » mis en œuvre en tant que code partagé. Ce type de point d’arrêt peut fonctionner à tout moment indépendamment du cœur qui exécute effectivement le code. Selon l’éditeur, le travail est également simplifié grâce aux diverses options proposées par l’environnement UDE 4.7 qui permettent par exemple de visualiser clairement les états système en cours d’exécution, que ce soit des variables d’application en mémoire, des paramètres système présentés sous la forme de diagrammes, etc. Par ailleurs, pour des analyses de niveau système et des validations de la sûreté de fonctionnement, l’environnement UDE 4.7 propose en complément des outils d’exploitation des traces qui mettent à profit le système MCDS (Multi-Core Debug System) des microcontrôleurs Aurix TC3xx. Ces outils peuvent notamment être utilisés pour tracer le code exécuté pour des analyses post-mortem ou pour remonter des informations de profilage pour optimiser l’exécution. UDE 4.7 dispose en outre d'un utilitaire de mesure de couverture de code. Dans la pratique, la communication avec les microcontrôleurs Aurix TC39xx est assurée via les boîtiers d’accès universels UAD2pro et UAD3++ équipés d’adaptateurs ad hoc pour l’interface JTAG ou l’interface propriétaire DAP d’Infineon. Si le boîtier UAD2pro utilise uniquement la mémoire de trace embarquée sur les microcontrôleurs Aurix pour le traçage MCDS, de grandes quantités de données de trace peuvent être récupérées à 22,5 Gbit/s via l’interface Aurora du boîtier UAD3++ pour un stockage dans ce dernier dispositif, doté d’une capacité mémoire qui peut atteindre 4 Go.
PLS n’est toutefois pas le seul éditeur d’outils de débogage à prendre le train de l’Aurix TC3xx. Forte de sa relation de longue date avec Infineon, la société Lauterbach a, de son côté, annoncé le support de la deuxième génération des microcontrôleurs Aurix par son outil Trace 32 Debugger. Avec, là aussi, la possibilité de lancer et d’arrêter les six cœurs en synchronisme ou de contrôler chaque cœur individuellement. Le flot de programme, le flot de données et l’état des périphériques comme le contrôleur DMA peuvent par ailleurs être enregistrés en temps réel, détaille Lauterbach, les informations de trace étant stockées dans la mémoire de trace embarquée ou renvoyées aux modules PowerTrace de la firme allemande via le lien AGBT prévu à cet effet. Au niveau débogage, le support du module programmable HSM (Hardware Security Module), du module de temporisation générique (GTM) et du contrôleur de veille est aussi assuré dans Trace32, sachant qu’il est possible d’effectuer le débogage via un port CAN en utilisant la technologie DAP over CAN Physical Layer (DXCPL). Altium n'est pas à la traîne Autre acteur historique du développement logiciel, Altium a annoncé pour sa part la version 6.1 de son environnement de développement Tasking VX pour l’architecture TriCore qui, d’une certaine façon, prend en compte la nouvelle génération des processeurs Aurix. Et ce via notamment l’outil ACT (Aurix Configuration Tool) qui se veut plus qu’un simple compilateur. Ainsi une fonction de « cross-linking » permet désormais à l’utilisateur de combiner les résultats de différentes versions de compilateurs. Avec la version 6.1 de l’environnement Tasking TriCore VX, il est possible d’intégrer du code « historique » issu d’anciennes versions tout en bénéficiant en même temps des avantages de la version la plus récente pour d’autres portions de l’application. Selon Altium, cette fonctionnalité présente un intérêt particulier pour les utilisateurs des bibliothèques MCAL d'Infineon qui ont été portées et validées avec des versions de compilateur plus anciennes. « Avec les nouvelles architectures d'Infineon qui arrivent sur le marché, nous devons aider nos clients à la fois à réutiliser leur ancien code, qui peut être certifié, et à tirer profit des composants matériels et des technologies de compilation les plus récentes, explique Franz Maidl, directeur des activités Tasking au niveau mondial chez Altium. C'est principalement ce qui nous a incités à nous pencher sur le cross-linking. » |