FreeRTOS ELECINF344. Samuel TARDIEU <sam@rfc1149.net> Mars 2015



Documents pareils
REALISATION d'un. ORDONNANCEUR à ECHEANCES

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Exécutif temps réel Pierre-Yves Duval (cppm)

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

DAns un système multi-utilisateurs à temps partagé, plusieurs processus

1 Mesure de la performance d un système temps réel : la gigue

Cours de Systèmes d Exploitation

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Cours A7 : Temps Réel

Ordonnancement temps réel

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

Introduction aux Systèmes et aux Réseaux

Runtime. Gestion de la réactivité des communications réseau. François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I

Les avantages de la virtualisation sont multiples. On peut citer:

Plan du cours Cours théoriques. 29 septembre 2014

Ordinateurs, Structure et Applications

Métriques de performance pour les algorithmes et programmes parallèles

Systèmes et exécutifs temps-réel

Cours Programmation Système

GPA770 Microélectronique appliquée Exercices série A

Ordonnancement temps réel

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

Temps Réel. Jérôme Pouiller Septembre 2011

<Insert Picture Here> Solaris pour la base de donnés Oracle

Windows XP niveau 2. D. Hourquin, Médiapôle St Ouen l'aumône

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Plan global Outils de développement et compilation. Plan. Objectifs des outils présentés. IDE, GCC/Clang, ASAN, perf, valgrind, GDB.

La JVM. La machine virtuelle Java. La JVM. La JVM

Modélisation de la Reconfiguration Dynamique appliquée à un décodeur LDPC Non Binaire

Cours 2: Exclusion Mutuelle entre processus (lourds, ou légers -- threads)

PROGRAMMATION EVENEMENTIELLE sur EXCEL

Fiche technique CPU 314SC/DPM (314-6CG13)

Introduction à la programmation concurrente

Differential Synchronization

Traduction des Langages : Le Compilateur Micro Java

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Network musical jammin

Atelier : Virtualisation avec Xen

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

gestion des processus La gestion des processus

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

INTRODUCTION À LA PROGRAMMATION CONCURRENTE

Nouveautés CRM 2015 & Migration. By Tanguy Touzard MVP CRM

SYSTEME DE PALPAGE A TRANSMISSION RADIO ETUDE DU RECEPTEUR (MI16) DOSSIER DE PRESENTATION. Contenu du dossier :

Réalisation d un OS 32 bits pour PC(x86)

Configurer l adressage des serveurs et des clients

Gestion mémoire et Représentation intermédiaire

Héritage presque multiple en Java (1/2)

NFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007

On appelle variable condition une var qui peut être testée et

Synchro et Threads Java TM

Structurer ses données : les tableaux. Introduction à la programmation

Expérience 3 Formats de signalisation binaire

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

Sécurisation du réseau

Initiation. àl algorithmique et à la programmation. en C

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

Projet Active Object

La technologie Java Card TM

Partie 7 : Gestion de la mémoire

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig

Contributions à l expérimentation sur les systèmes distribués de grande taille

Extension d'un outil de trace pour système embarqué temps réel. Encadrants : Laurent Pautet, Jérôme Hugues

Allocation de l adressage IP à l aide du protocole DHCP.doc

Structure d un programme

Introduction : les processus. Introduction : les threads. Plan

11 Février 2014 Paris nidays.fr. france.ni.com

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

SugarCubes. Jean-Ferdinand Susini Maître de Conférences, CNAM Chaire systèmes enfouis et embarqués. Paris, le 9 janvier, 2009

Architecture des ordinateurs

Chapitre 4 : Exclusion mutuelle

Linux embarqué Retour d expérience et temps réel. Denis Coupvent-Desgraviers

SYSTÈME DE GESTION DE FICHIERS

INITIATION AU LANGAGE JAVA

Qu'est-ce qu'un processus: Définitions

Fiche technique CPU 315SN/PN (315-4PN33)

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Conventions d écriture et outils de mise au point

Exercices INF5171 : série #3 (Automne 2012)

Chapitre 4 : Outils de communication centralisés entre processus

TRACER LE GRAPHE D'UNE FONCTION

ProCod. Manuel d utilisation. Software de programmation pour codeurs absolus TWK modèles CRF et DAF CRF DF 08 / 10

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Cours de Génie Logiciel

Génie Logiciel avec Ada. 4 février 2013

Manuel programmation QUESTOR

Backup Exec 2014 Management Pack for Microsoft SCOM. - Guide de l'utilisateur

i7 0 Guide de référence rapide Français Document number: Date:

Chapitre 2. Les processus. 2.1 Introduction. 2.2 les différents états d un processus

Atelier C TIA Portal CTIA06 : programmation des automates S7-300 Blocs d organisation

Guide de l utilisateur Mikogo Version Windows

KoinKoin. Système d exploitation à architecture basée micro-noyau. Antoine Castaing Nicolas Clermont Damien Laniel

Première édition en format électronique. Parallels Desktop 7 pour Mac OS X.

SYSTEMES DE TRANSFERT STATIQUE: CEI 62310, UNE NOUVELLE NORME POUR GARANTIR LES PERFORMANCES ET LA SÉCURITÉ

La haute disponibilité

Version MOVITRANS 04/2004. Description / FR

Initiation au HPC - Généralités

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Démarrer et quitter... 13

Transcription:

FreeRTOS ELECINF344 Samuel TARDIEU <sam@rfc1149.net> Mars 2015

FreeRTOS : configuration La configuration de FreeRTOS se fait dans un fichier FreeRTOSConfig.h, et définit notamment : les fonctionalités utilisées (préemption, sémaphores, files d attente, priorités dynamiques ou non, délais relatifs, délais absolus, etc.) ; le nombre de niveau de priorités utilisées, et la plage réservée à l exécutif de FreeRTOS et aux interruptions ; la taille de pile minimale pour chaque tâche, la taille de la mémoire disponible pour le tas ; la fréquence du tick système, qui représente la granularité des délais offerts au programmeur et la fréquence du changement de tâche active entre tâches de même priorité. 2/8 Département INFRES ELECINF344 Samuel Tardieu Mars 2015

FreeRTOS : synchronisation FreeRTOS offre les outils suivants pour la synchronisation entre les tâches et avec les routines d interruptions : files d attente ; sémaphores binaires ou à valeur maximale fixée, sans héritage de priorité ; verrous avec héritage de priorité. Tous ces outils peuvent être utilisés depuis des tâches avec des timeouts, ou depuis des interruptions avec des primitives dédiées non bloquantes. 3/8 Département INFRES ELECINF344 Samuel Tardieu Mars 2015

FreeRTOS : concurrence Pour la gestion de programmes concurrents, FreeRTOS propose : un système de tâches préemptif avec gestion de la priorité ; un système de coroutines avec gestion de la priorité ; un système de hooks permettant de spécifier du code exécuté à chaque tick du noyau ou lorsque le système exécute l idle-task. Ces systèmes peuvent être utilisés seuls ou combinés. Il est par exemple possible d utiliser des coroutines lors de l exécution de l idle-task et des tâches en mode préemptif sinon. 4/8 Département INFRES ELECINF344 Samuel Tardieu Mars 2015

FreeRTOS : gestion du temps Le système de ticks de FreeRTOS permet : à une tâche d être suspendue pendant un nombre entier de ticks ; à une tâche d être suspendue jusqu à une date donnée (en nombre de ticks depuis le démarrage) ; à l ordonnanceur de changer de tâche active parmi les tâches de plus haute priorité lors du déclenchement du tick. Plus la fréquence du tick est grande, plus la gestion du temps est précise, mais plus le surcoût lié à cette gestion est important. Pour des événements plus précis, il est possible d utiliser des timers externes à FreeRTOS qui débloqueront des tâches à l aide d un sémaphore binaire. 5/8 Département INFRES ELECINF344 Samuel Tardieu Mars 2015

FreeRTOS : gestion de la mémoire FreeRTOS a besoin de routines malloc() et free() pour allouer la mémoire des différentes entités. En addition, trois implémentations sont livrées avec FreeRTOS : heap_1.c : allocation possible, désallocation ignorée ; heap_2.c : allocation possible, désallocation possible sans agrégation des zones libres contiguës ; heap_3.c : utilise les fonctions malloc() et free() fournies, mais les rend thread-safe. Si les tâches et les objets (sémaphores, files d attentes, etc.) sont créés au début du programme, toutes les allocations disponibles seront faites avant de démarrer l ordonnanceur. Il sera par la suite impossible de manquer de mémoire. 6/8 Département INFRES ELECINF344 Samuel Tardieu Mars 2015

FreeRTOS : outils de trace FreeRTOS est doté d outils de trace et de debug permettant de suivre le fonctionnement du système et de s assurer de son bon déroulement : les tâches peuvent être nommées et la liste des tâches consultées ; des données supplémentaires peuvent être attachées aux tâches, et consultées lors du changement de contexte (par exemple en changeant une sortie analogique pour représenter une tension différente pour chaque tâche) ; un certain nombre d attributs peuvent être consultés ; des fonctionalités de vérification de non-débordement de la pile peuvent être employés (vérification lors du changement de contexte et canari). 7/8 Département INFRES ELECINF344 Samuel Tardieu Mars 2015

FreeRTOS : anatomie d une application Une application FreeRTOS aura généralement la forme suivante : 1. Initialisation sommaire du matériel (assez pour les deux étapes suivantes) 2. Copie de la section.data et initialisation de la section.bss 3. Exécution du programme principal (à partir de l étape suivante) 4. Fin de l initialisation du matériel (horloges supplémentaires, wait states, etc.) 5. Initialisation des périphériques 6. Création des structures FreeRTOS (tâches et structures de contrôle) 7. Démarrage de l ordonnanceur 8/8 Département INFRES ELECINF344 Samuel Tardieu Mars 2015