InnovChipELECTRONICS

INNOVCHIP · Guides techniques

FreeRTOS : analyser l'inversion de priorités

La réponse en bref

Une priorité élevée ne garantit pas une réponse rapide lorsqu'une tâche attend une ressource. Enregistrez exécution, attente et changements de propriétaire du mutex.

Rendre le blocage visible

Marquez demande, acquisition et libération de la ressource. Observez aussi la tâche intermédiaire qui utilise le processeur sans avoir besoin de cette ressource. Cela permet d'identifier le retard indirect causé par un propriétaire de faible priorité. FreeRTOS documente un mécanisme élémentaire d'héritage de priorité pour les mutex FreeRTOS — Mutexes.

Réduire la section protégée

Recherchez attentes réseau, transferts longs ou autres verrous à l'intérieur du mutex. Préparez les données en dehors lorsque cela est possible. Une autre architecture peut confier la périphérie à un propriétaire unique avec une file bornée de requêtes. Mesurez aussi l'attente introduite par cette file : changer de mécanisme ne prouve pas le respect des échéances.

Mesurer en situation de concurrence

Activez une tâche de calcul en arrière-plan et des accès fréquents au périphérique commun. Comparez la latence maximale de bout en bout à la limite convenue. Examinez particulièrement les verrous imbriqués et consignez leur ordre. Un accès réussi sur un système libre ne décrit pas la charge réelle. Conservez la trace avec les priorités et la version du firmware.

Liste de vérification

  • Enregistrer propriétaire et durée d'attente.
  • Examiner les opérations lentes sous verrou.
  • Mesurer la latence complète avec tâches concurrentes.

Questions fréquentes

Un sémaphore binaire remplace-t-il toujours un mutex ?

Non. Les règles de propriété et l'héritage de priorité diffèrent. Choisissez selon le besoin d'exclusion mutuelle ou de synchronisation d'événements.

Sources techniques

Prestation associée

FreeRTOS et tâches

Parler de votre projet