ac6-training, un département d'Ac6 SAS
FR
FrançaisEnglish
 
go-up

ac6 ac6-training Programmation Temps réel Programmation temps réel avec FreeRTOS
RT3

Programmation temps réel avec FreeRTOS

Formation FreeRTOS

Objectifs

  • Obtenir une vue d'ensemble de l'architecture Cortex-M4
  • Découvrir les concepts du multitâche temps réel
  • Comprendre les contraintes temps réel
    • Déterminisme
    • Préemption
    • Interruptions
  • Comprendre l'architecture de FreeRTOS
  • Découvrir les différents services et APIs de FreeRTOS
  • Apprendre à développer des applications FreeRTOS
  • Apprendre à déboguer les applications FreeRTOS
  • Cours théorique
    • Support de cours imprimé et au format PDF (en anglais)
    • Le formateur répond aux questions des stagiaires en direct pendant la formation et fournit une assistance technique et pédagogique
  • Activités pratiques
    • Les activités pratiques représentent de 40% à 50% de la durée du cours
    • Elles permettent de valider ou compléter les connaissances acquises pendant le cours théorique.
    • Un PC pour deux stagiaires pour les activités pratiques
    • Une plateforme cible (base STM32) pour deux stagiaires (sauf en cas d'utilisation de qemu)
    • Accès à un serveur cloud privé
    • Exemples de code, exercices et solutions
    • Le formateur assiste les stagiaires pendant les exercices
  • Au début de chaque demi-journée une période est réservée à une interaction avec les stagiaires pour s'assurer que le cours répond à leurs attentes et l'adapter si nécessaire
  • Familiarité avec les concepts et la programmation du C embarqué
  • Connaissance de base des processeurs embarqués
  • Tout ingénieur ou technicien en systèmes embarqués possédant les prérequis ci-dessus.
  • Les prérequis sont vérifiés avant l'entrée en formation, sur la base des prérequis publiés sur cette fiche.
  • Pendant la formation, les acquis sont évalués en continu : quiz de fin de séquence et observation directe du formateur.
  • À l'issue de la formation, chaque participant reçoit une attestation de fin de formation.

Plan du cours

  • Présentation de l'architecture Cortex-M
    • Deux pointeurs de pile
    • Différents modes d'exécution et niveaux de privilège
    • Présentation de la MPU
    • Description du timer Systick
  • Présentation du mécanisme d'exception / interruption
    • Présentation de l'entrée et du retour d'interruption
    • Présentation des interruptions SVC / PendSV / Systick
  • Développement avec l'IDE
  • Concepts de base du temps réel
  • Les contraintes du temps réel
  • Multitâche et temps réel
  • Tâches et descripteurs de tâche
    • Contenu du descripteur de tâche
    • Liste des descripteurs de tâche
  • Commutation de contexte
  • Ordonnancement des tâches et préemption
    • Ordonnancement à base de tick ou tickless
  • Systèmes d'ordonnancement et preuve d'ordonnançabilité
    • Ordonnancement à priorités fixes
    • Ordonnancement RMA et EDF
  • Ordonnancement avec FReeRTOS
    • Ordonnancement préemptif déterministe
    • Stratégies d'ordonnancement
    • Ordonnancement coopératif
    • Ordonnancement hybride
  • Création des tâches
  • Priorités des tâches
  • États d'une tâche
  • La tâche idle
  • Temporisations
  • Modification de la priorité d'une tâche
  • Suppression de tâches
  • Suspension de tâches
  • Structures du noyau
  • Thread Local Storage
  • Interruptions du noyau sur Cortex-M4
  • Traces d'ordonnancement
  • Diagnostic visuel des traces avec Tracealyzer
  • Les gestionnaires mémoire de FreeRTOS
  • Gestion du manque de mémoire
  • Gestion des débordements de stack
  • Exclusion mutuelle avec FreeRTOS
    • Sections critiques (masquage des interruptions)
    • Suspension (verrouillage) de l'ordonnanceur
    • Mutex
  • Concepts des mutex
    • Mutex ou semaphore
    • Mutex récursifs ou non récursifs
    • Le problème de l'inversion de priorité
    • L'héritage de priorité (la réponse automatique)
    • Le plafond de priorité (la réponse centrée sur la conception)
  • Tâches gardiennes
  • Introduction
    • Mise en attente et réveil des tâches
    • Semaphores
    • Événements
    • Boîtes aux lettres
  • Semaphores binaires avec FreeRTOS
    • Libérer un semaphore binaire
    • Prendre un semaphore binaire
  • Gestion des files de messages avec FreeRTOS
    • Création
    • Émission sur une file
    • Réception depuis une file
    • Gestion des données
    • Émission de types composés
    • Transfert de données volumineuses
  • Event groups
  • Task notifications
  • Stream buffers et message buffers
  • Problèmes de la programmation parallèle
    • Accès parallèle non contrôlé
    • Interblocages
    • Livelocks
    • Famine
  • Besoin d'interruptions dans un système temps réel
    • Interruption logicielle
    • Interruptions de temps
    • Interruptions de périphériques
  • Interruptions sur niveau ou sur front
  • Acquittement matériel et logiciel
  • Vectorisation des interruptions
  • Interruptions et ordonnancement
  • Traitement différé des interruptions avec FreeRTOS
    • Tâches avec synchronisation par interruption
    • Utilisation des semaphores dans une ISR
    • Semaphores à compte
    • Utilisation des files de messages dans une ISR
  • Traitement des interruptions par FreeRTOS
    • Écriture des ISR en C
    • Fonctions utilisables sous interruption
    • Imbrication des interruptions
  • La tâche Timer Daemon
  • Configuration des timers
  • Timer one-shot / auto-reload
  • API des timers logiciels
  • Traitement différé des interruptions
  • La MPU du Cortex/M
    • Modes utilisateur et privilégié
    • Permissions d'accès
  • Définition des régions MPU
    • Régions qui se recouvrent
    • Régions prédéfinies
    • Régions définies par le programmeur
  • Configuration nécessaire de l'éditeur de liens
  • Conseils pratiques d'utilisation
  • Besoin de structures de données spécifiques
  • Structures de données
    • Listes chaînées
    • Listes circulaires
    • FIFO
    • Piles
  • Preuves d'intégrité des structures de données
    • Assertions
    • Pré-conditions et post-conditions
  • Sûreté vis-à-vis des threads
  • Algorithmes de gestion mémoire
    • Buddy System
    • Best fit / First Fit
    • Gestion par pools
  • Schémas d'allocation mémoire fournis par FreeRTOS
    • Schéma allocation seule
    • Best-fit sans fusion des blocs
    • malloc par défaut sûr vis-à-vis des threads
  • Contrôle de la mémoire libre restante
  • Ajout d'un allocateur mémoire spécifique à l'application
  • Erreurs de gestion mémoire
  • Surveillance de la stack
Plus d'information

Pour vous enregistrer ou pour toute information supplémentaire, contactez nous par email à l'adresse info@ac6-formation.com.

Les inscriptions aux sessions de formation sont acceptées jusqu'à une semaine avant le début de la formation. Pour une inscription plus tardive nous consulter

Vous pouvez aussi remplir et nous envoyer le bulletin d'inscription

Ce cours peut être dispensé dans notre centre de formation près de Paris ou dans vos locaux, en France ou dans le monde entier.

Les sessions inter-entreprises programmées sont ouvertes dès deux inscrits. Sous condition d'un dossier complet, les inscriptions sont acceptées jusqu'à une semaine avant le début de la formation.

Dernière mise à jour du plan de cours : 2 juillet 2026

L'inscription à nos formations est soumise à nos Conditions Générales de Vente

Sur le même sujet :

Yocto ou Buildroot : comment choisir pour votre projet Linux embarqué