Exploiter le NXP i.MX RT500 pour les appareils intelligents avec DSP : Multi-threading, XOS et Cadence Fusion F1 Audio DSP
Explorez le multi-threading, le RTOS XOS, le partage de ressources par sémaphores et comment le MCU i.MX RT500 de NXP permet les appareils intelligents dotés de DSP.
L'électronique grand public actuelle exige des composants capables de traiter d'énormes quantités de données avec rapidité et efficacité. Les microcontrôleurs intégrant des processeurs de signal numérique hautement optimisés sont essentiels pour les applications de sécurité, de voix et d'image.
Cet article met en lumière le processeur audio Cadence® Tensilica® Fusion F1 — un co-processeur autonome qui s'associe aux cœurs Cortex-M33 de l'i.MX RT500 pour offrir des charges de travail de traitement de signal à haute performance.
Concepts fondamentaux des programmes multi-threadés
Les processeurs modernes donnent l'impression d'exécuter plusieurs threads simultanément, pourtant un seul cœur CPU exécute un thread à la fois. Lorsque le nombre de threads dépasse la disponibilité des cœurs, un système d'exploitation doit ordonnancer les tâches.
Le système d'exploitation suit l'état de chaque thread, allouant des tranches de temps CPU afin que les applications semblent s'exécuter en parallèle tout en maintenant l'équité.

Figure 1. États du cycle de vie des threads
L'ordonnanceur maintient trois files d'attente : prête, bloquée et en cours d'exécution. Il prend en compte les priorités des threads, les événements de blocage (ex. : E/S, interruptions) et la nécessité de préemption. Choisir une stratégie d'ordonnancement appropriée est critique pour les charges de travail temps réel.
Conditions et événements dans XOS
XOS permet aux développeurs de définir des conditions qui bloquent un thread jusqu'à ce qu'un prédicat défini par l'utilisateur devienne vrai. Les événements, représentés sous forme de masques de bits, permettent à plusieurs threads ou gestionnaires d'interruptions de se synchroniser simultanément.
Interruptions dans XOS
XOS prend en charge une gestion d'interruptions rapide et personnalisable, y compris les interruptions imbriquées — où une interruption de priorité supérieure suspend temporairement une interruption de priorité inférieure. Le système reprend automatiquement le service interrompu une fois le niveau supérieur terminé.
Les threads bénéficient également de délais temporisés et de rappels périodiques. Le co-processeur DSP offre jusqu'à trois temporisateurs internes que les développeurs peuvent configurer selon leurs besoins.
Comprendre les sémaphores
Les sémaphores coordonnent l'accès aux ressources partagées. Ils maintiennent un compteur interne reflétant le nombre de threads pouvant accéder simultanément à une section critique. Lorsque le compteur atteint zéro, les threads en attente se bloquent jusqu'à ce que la ressource redevienne disponible.

Figure 2. Diagramme de flux de travail des sémaphores
Présentation du MCU i.MX RT500 et du DSP
La série i.MX RT500 dispose de deux cœurs Cortex-M33 cadencés jusqu'à 275 MHz, avec jusqu'à 5 Mo de SRAM. La sécurité est renforcée par Arm TrustZone, un MPU à huit régions et le co-processeur crypto CASPER pour l'accélération matérielle d'algorithmes asymétriques.
Les options de gestion d'énergie permettent aux concepteurs d'affiner la consommation selon les besoins de l'application. Des accélérateurs dédiés — incluant le DSP audio Cadence® Tensilica® Fusion F1, un GPU 2D et plusieurs interfaces d'affichage — permettent un fonctionnement sécurisé et basse consommation pour l'HMI, l'IoT, les écouteurs intelligents et les assistants vocaux.
Focus sur le DSP audio
Le DSP Fusion fonctionne jusqu'à 200 MHz et intègre une unité de calcul flottant matériel, le rendant idéal pour les dispositifs à activation vocale permanente. Il regroupe des modules de pré-traitement et post-traitement pour une large gamme de codecs audio.
Il partage la SRAM du MCU pour l'échange de données, en respectant les limites de protection mémoire pour un accès sécurisé.
Programmation avec le DSP en perspective
Les DSP Tensilica sont compatibles avec FreeRTOS®, Zephyr®, Linux® et XOS. Le noyau XOS de Cadence, écrit en C standard, offre l'ordonnancement de tâches, la commutation de contexte adaptative, les primitives de synchronisation et une gestion robuste des interruptions — le tout optimisé pour les processeurs Xtensa.
Répondre aux exigences des appareils grand public intelligents
Grâce à son mélange de performance des cœurs, de sécurité et d'accélérateurs spécialisés, l'i.MX RT500 permet aux ingénieurs de concevoir la prochaine génération d'appareils grand public intelligents, toujours actifs.
Pour des informations plus approfondies, consultez la note d'application AN13159 de NXP, qui détaille les API prises en charge, des exemples de conditions et d'événements XOS, et bien plus. Le site web de NXP propose également des supports de formation — vidéos, webinaires et documentation — pour aider les développeurs à démarrer.
Les articles industriels sont une forme de contenu qui permet aux partenaires industriels de partager des actualités utiles, des messages et de la technologie avec les lecteurs d'All About Circuits d'une manière que le contenu éditorial ne permet pas. Tous les articles industriels sont soumis à des directives éditoriales strictes dans le but d'offrir aux lecteurs des actualités utiles, une expertise technique ou des histoires. Les points de vue et opinions exprimés dans les articles industriels sont ceux du partenaire et pas nécessairement ceux d'All About Circuits ou de ses rédacteurs.
Embarqué
- Maîtriser les directives using C# : Imports, alias et directives static
- CEVA-BX : processeur hybride DSP/MCU unifié pour l'IoT, l'automobile et l'industrie de nouvelle génération
- Quand un DSP surpasse un accélérateur matériel
- Choisir entre accélérateurs matériels et DSP : Un guide pratique
- Détection de niveau de fluide sans contact avec une puce réflectomètre
- Sécurité domestique par RFID : surveillance low-cost sans batterie
- MCU Renesas RX23W : sécurité IoT renforcée avec Bluetooth 5.0
- STM32WB50 : MCU sans fil dual-core pour applications IoT sécurisées
- Maîtriser l'utilisation de la poignée DSP : directives clés pour une performance optimale