Topic outline

  • Systèmes Temps Réel

    RTOS

    Real Time Operating System

    str 2018

    Durant cet enseignement nous allons nous intéresser aux systèmes temps réel, notamment à travers l'utilisation de systèmes d'exploitation. Un système embarqué (ensemble du système électronique et du logiciel de supervision) dit temps réel doit garantir un déterminisme à l'exécution pour certains traitements  (ex : assistance au freinage, toute application embarquant un asservissement automatique, etc), tout en garantissant le bon fonctionnement du reste de l'applicatif dont certaines latences peuvent être tolérées (ex : communications réseaux IP, IHM, etc). Un système temps réel peut être réalisé avec ou sans OS (operating system). Néanmoins, l'emport d'un RTOS (Real Time OS) permet de garantir une meilleure évolutivité et modularité d'un programme tout en simplifiant grandement le partage du temps CPU entre les tâches de l'applicatif. Dans un premier temps, les concepts et outils de base de tout système d'exploitation seront découverts avant de s'intéresser aux services spécifiques proposer par des exécutifs temps réel.

    Le système utilisé pour une mise en application des concepts présentés sera FreeRTOS (Free Real Time Operating System, http://www.freertos.org/), un RTOS ou ordonnanceur temps réel libre et open source sous licence MIT. La trame de travaux pratiques sera réalisée sur MCU 32bits PIC32 proposé par Microchip. Observons en quelques points le contenu de cette trame :

    1. MODE COOPERATIF - séance n°1

    1.1. Interface de communication
    1.2. Mode coopératif
    1.3. État bloqué
    1.4. Tâche idle


    2. MODE PREEMPTIF ET GESTION MEMOIRE - séance n°2

    2.1. Mode préemptif
    2.2. Gestion mémoire


    3. QUEUE DE MESSAGE ET SEMAPHORE - séance n°3

    3.1. Queue de Message
    3.2. Timeout
    3.3. Section critique
    3.4. Sémaphore
    3.5. Bibliothèque UART avec appels système


    4. PROJET - séance n°4 et plus

    4.1. Présentation
    4.2. Spécifications

  • Outils de Développement

    Les outils de développement proposés par Microchip sont libre d'utilisation du moment que vous utilisez les versions dîtes LITE (outils sans options d'optimisation). Chaque exercice de TP peut être pré-compilé à la maison avant l'arrivée en séance.


    Pour information, la trame de TP n'utilisant comme interface que le module UART 2 du MCU PIC32MZ2048EFH144 en mode transmission, il est alors possible de valider le fonctionnement de vos programmes depuis chez vous en mode Simulateur. Voici la procédure : 

    • Ouvrir les propriétés du projet : fenêtre Project > clic droit sur le nom du projet > Properties
    • Sélectionner le simulateur : Hardware Tool > Simulator
    • Configurer le simulateur : Simulator > Options Categories [UART2 IO Options] > Enable UART2 IO
    • Sauvegarder les propriétés du projet : Apply > OK
    • Ouvrir une console de debug : Window > Debugging > Debug Console
    • Compiler et exécuter le projet en mode Debug : Debug > Debug Main Project
    • Visualiser la console de sortie : sélectionner la nouvelle fenêtre de sortie "UART 2 Output" 
    • Modifier les temps d'attente dans vos applicatifs (vTaskDelay) de la seconde vers qq10-100ms
    • Compiler votre projet en mode Debug et l'IDE devrait ouvrir automatique une fenêtre de sortie redirigeant une console série UART : Hop c'est magique, normalement !

    Afin de développer sur système physique, vous aurez également besoin de drivers pour module USB/RS232. FTDI étant le leader du marché et proposant des drivers stables, nous sommes localement prudent à bien acheter des câbles utilisant leurs solutions. De même, sous Windows, nous préconisons l'utilisation de TeraTerm Pro ou PuTTY comme terminal de communication avec les ports COM virtuels ou réels de la machine host  : 


    • TP groupe 3

      Travaux à la maison

      Pour déposer un devoir, il faut s'inscrire dans ce cours :

      En bas à droite, "Administration du cours-> s'inscrire dans le cours"

    • TP groupe 4

      Travaux à la maison

      Pour déposer un devoir, il faut s'inscrire dans ce cours :

      En bas à droite, "Administration du cours-> s'inscrire dans le cours"