presentation picos18
Post on 04-Aug-2015
190 Views
Preview:
TRANSCRIPT
UE : Atelier STRE
ENSEIGNANT :Mr Wajdi Bouajila
Institut Supérieur des Etudes Technologiques de DjerbaDépartement technologies de l’Informatique
Généralité Les noyau temps réels sont :
noyaux exécutifs de petites tailles
assez performants et particulièrement appropriés à des systèmes embarqués simples
temps de réaction aux événements rapide (alarmes, interruptions...).
ordonnancement par priorités
Mr Bouajila Wajdi 2
Services des OS TR les OS Temps Réel :
offrent une gestion fine des priorités
offrent des primitives système rapides, en temps borné (gestion des interruptions, des sémaphores…)
pas de mémoire virtuelle, mais verrouillage de pages en mémoire centrale
minimisation de l' "overhead" (le temps pris par le système pour s'exécuter et se gérer lui-même)
Mr Bouajila Wajdi 3
Système de commande en temps réel
Mr Bouajila Wajdi 4
Mr Bouajila Wajdi 5
L’extension Temps réel La notion de temps réel correspond à la façon dont les
tâches sont exécutées dans le temps : le temps d'exécution des tâches étant déterminant pour la commutation des tâches, le noyau temps réel exécute en premier les tâches dont le temps d'exécution est critique.
Mr Bouajila Wajdi 6
Noyau préemptif Le fonctionnement du noyau préemptif est illustré à la
figure suivante :
Mr Bouajila Wajdi 7
Le Picos18
Mr Bouajila Wajdi 8
Introduction Le noyau temps réel multi tâches pour PIC18
PICos18 est un produit de la société PRAGMATEC.
PICos18 est basé sur la norme industrielle « OSEK/VDX »
PICos18 s’utilise aisément au sein de MPLAB.
PICos18 nécessite C18
PICos18 est distribué sous licence GPL (General Public License)
Mr Wajdi Bouajila 9
Caractéristiques techniques Type de noyau :
Multi-tâche préemptif OSEK/VDX Processeurs cibles :
Famille des PIC18xxx de MICROCHIP Nombre de tâches :
16 Nombre de priorités :
8 Nombre d'évènements par tâche :
8 Nombre de timers logiciels :
Pas de limites Temps de latence:
25 μs (Freq = 40 MHz)
Mr Bouajila Wajdi 10
suite Taille (ctx + pile) d’une tâche :
20 octets Taille du noyau (ROM) :
< 1 Ko Taille du noyau (RAM) :
7 octets Taille des services (ROM) :
4 Ko Taille des services (RAM) :
121 octets Taille de la pile hardware :
32 appels de fonctions pour toutes les tâches
Mr Bouajila Wajdi 11
Organisation PICos18 est organisé autour de 6 entités logicielles :
Mr Bouajila Wajdi 12
Cœur du noyau Init + Scheduler + Task Manager
Gérer les tâches de l'application
déterminer la prochaine tâche active en fonction de l'état et la priorité de chaque tâche.
Mr Bouajila Wajdi 13
Alarm Manager C’est le gestionnaire d'alarmes et de compteurs
Proche du coeur du noyau, il répond à l'interruption du TIMER0 afin de mettre à jour périodiquement les alarmes et compteurs associées aux tâches.
DeclarAlarm
SetRelAlarm
SetAbsAlarm
GetAlarm
CancelAlarm
GetAlarmBase
Mr Bouajila Wajdi 14
Hook routines
Sont proches du cœur du noyau et permettent à l'utilisateur de dérouter le déroulement normal du noyau de façon à prendre temporairement le contrôle du système.
StartupHook
ShutdownHook
ErrorHook
PreTaskHook
PostTaskHook
Mr Bouajila Wajdi 15
Process Manager C’est le gestionnaire de tâches
Sont rôle est d'offrir à l'application les fonctions nécessaires à la gestion des états (changer l'état d'une tâche, chaîner des tâches, activer une tâche...).
ActivateTask
TerminateTask
ChainTask
GetTaskID
GetTaskState
Schedule
Mr Bouajila Wajdi 16
Event Manager C’est le gestionnaire d'évènement
C’est un service du noyau dont le rôle est d'offrir à l'application les fonctions nécessaires à la gestion des évènements d'une tâche (mise en attente sur un évènement, effacer un évènement...).
SetEvent
GetEvent
WaitEvent
ClearEvent
Mr Bouajila Wajdi 17
INT Manager C’est le gestionnaire d'interruption
Il offre à l'application les fonctions nécessaires à 'activation et la désactivation des interruptions du système.
EnableAllInterrupts
DisableAllInterrupts
SuspendAllInterrupts
ResumeAllInterrupts
SuspendOSInterrupts
ResumeOSInterrupts
Mr Bouajila Wajdi 18
Etat des tâches Dans un environnement multitâche, les tâches peuvent
être dans un des quatre états suivants :
- RUNNING (en exécution) : Tache en possession d'un processeur et en cours d'exécution.
- READY (prête à l'exécution) : Donc en possession de toutes les ressources nécessaire a son fonctionnement sauf d'un processeur.
- WAITING (en dormie) : Soit en attente d'une ressource quelconque indispensable à son exécution future.
- SUSPENDED (suspendue) : La tâche est présente dans le projet, mais n'est pas prise en compte par le noyau.
Mr Bouajila Wajdi 19
Etat des tâches
Mr Bouajila Wajdi 20
Transition entre tâche READY -* RUNNING (START) : Correspond à une allocation du
processeur. · RUNNING -* READY (PREEMPT) : Correspond a une préemption du
processeur au profit d'une autre tache cette préemption est décidée selon l'algorithme d'ordonnancement utilisé.
· RUNNING -* WAIT (WAIT) : Due à un appel system impliquant l'attente d'une ressource du system (waitEvent),
· WAIT -* READY(RELEASE) : Appelé réveil de la tache · SUSPENDED -* READY (ACTIVATE): Activation de la tâche
désignée. Si la tâche ainsi activée est la tâche prête la plus prioritaire elle prend immédiatement la main sur la tâche en cours.
· RUNNING -* SYSPENDED (TERMINATE): Termine la tâche appelante. La tâche n'est plus alors considérée par le noyau. Pour l'exécuter de nouveau il est nécessaire de l'activer à l'aide de la fonction ActivateTask.
Mr Bouajila Wajdi 21
Mise en œuvre Télécharger le noyau à partir du site
http://www.picos18.com/
Installer le compilateur MCC18
Mr Bouajila Wajdi 22
top related