Vous êtes sur la page 1sur 22

Institut Suprieur des Etudes Technologiques de Djerba Dpartement technologies de lInformatique

UE : Atelier STRE ENSEIGNANT :Mr Wajdi Bouajila

Gnralit
Les noyau temps rels sont : noyaux excutifs de petites tailles assez performants et particulirement appropris des systmes embarqus simples temps de raction aux vnements rapide (alarmes, interruptions...). ordonnancement par priorits

Mr Bouajila Wajdi

Services des OS TR
les OS Temps Rel : offrent une gestion fine des priorits offrent des primitives systme rapides, en temps born (gestion des interruptions, des smaphores) pas de mmoire virtuelle, mais verrouillage de pages en mmoire centrale minimisation de l' "overhead" (le temps pris par le systme pour s'excuter et se grer lui-mme)

Mr Bouajila Wajdi

Systme de commande en temps rel

Mr Bouajila Wajdi

Mr Bouajila Wajdi

Lextension Temps rel


La notion de temps rel correspond la faon dont les

tches sont excutes dans le temps : le temps d'excution des tches tant dterminant pour la commutation des tches, le noyau temps rel excute en premier les tches dont le temps d'excution est critique.

Mr Bouajila Wajdi

Noyau premptif
Le fonctionnement du noyau premptif est illustr la

figure suivante :

Mr Bouajila Wajdi

Le Picos18

Mr Bouajila Wajdi

Introduction
Le noyau temps rel multi tches pour PIC18 PICos18 est un produit de la socit PRAGMATEC. PICos18 est bas sur la norme industrielle

OSEK/VDX PICos18 sutilise aisment au sein de MPLAB. PICos18 ncessite C18 PICos18 est distribu sous licence GPL (General Public License)

Mr Wajdi Bouajila

Caractristiques techniques
Type de noyau :

Multi-tche premptif OSEK/VDX Processeurs cibles : Famille des PIC18xxx de MICROCHIP Nombre de tches : 16 Nombre de priorits : 8 Nombre d'vnements par tche : 8 Nombre de timers logiciels : Pas de limites Temps de latence: 25 s (Freq = 40 MHz)
Mr Bouajila Wajdi 10

suite
Taille (ctx + pile) dune tche :

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 tches
Mr Bouajila Wajdi 11

Organisation
PICos18 est organis autour de 6 entits logicielles :

Mr Bouajila Wajdi

12

Cur du noyau
Init + Scheduler + Task Manager Grer les tches de l'application dterminer la prochaine tche active en fonction de

l'tat et la priorit de chaque tche.

Mr Bouajila Wajdi

13

Alarm Manager
Cest le gestionnaire d'alarmes et de compteurs Proche du coeur du noyau, il rpond l'interruption du

TIMER0 afin de mettre jour priodiquement les alarmes et compteurs associes aux tches.

DeclarAlarm SetRelAlarm SetAbsAlarm GetAlarm CancelAlarm GetAlarmBase


Mr Bouajila Wajdi 14

Hook routines

Sont proches du cur du noyau et permettent l'utilisateur de drouter le droulement normal du noyau de faon prendre temporairement le contrle du systme.

StartupHook ShutdownHook ErrorHook PreTaskHook PostTaskHook


Mr Bouajila Wajdi 15

Process Manager
Cest le gestionnaire de tches Sont rle est d'offrir l'application les fonctions ncessaires

la gestion des tats (changer l'tat d'une tche, chaner des tches, activer une tche...).

ActivateTask TerminateTask ChainTask GetTaskID GetTaskState Schedule


Mr Bouajila Wajdi 16

Event Manager
Cest le gestionnaire d'vnement Cest un service du noyau dont le rle est d'offrir

l'application les fonctions ncessaires la gestion des vnements d'une tche (mise en attente sur un vnement, effacer un vnement...).

SetEvent GetEvent WaitEvent ClearEvent


Mr Bouajila Wajdi 17

INT Manager
Cest le gestionnaire d'interruption Il offre l'application les fonctions ncessaires 'activation

et la dsactivation des interruptions du systme.


EnableAllInterrupts DisableAllInterrupts

SuspendAllInterrupts
ResumeAllInterrupts SuspendOSInterrupts

ResumeOSInterrupts
Mr Bouajila Wajdi 18

Etat des tches


Dans un environnement multitche, les tches peuvent

tre dans un des quatre tats suivants : - RUNNING (en excution) : Tache en possession d'un processeur et en cours d'excution. - READY (prte l'excution) : Donc en possession de toutes les ressources ncessaire a son fonctionnement sauf d'un processeur. - WAITING (en dormie) : Soit en attente d'une ressource quelconque indispensable son excution future. - SUSPENDED (suspendue) : La tche est prsente dans le projet, mais n'est pas prise en compte par le noyau.
Mr Bouajila Wajdi 19

Etat des tches

Mr Bouajila Wajdi

20

Transition entre tche


READY -* RUNNING (START) : Correspond une allocation du

processeur. RUNNING -* READY (PREEMPT) : Correspond a une premption du processeur au profit d'une autre tache cette premption est dcide 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 rveil de la tache SUSPENDED -* READY (ACTIVATE): Activation de la tche dsigne. Si la tche ainsi active est la tche prte la plus prioritaire elle prend immdiatement la main sur la tche en cours. RUNNING -* SYSPENDED (TERMINATE): Termine la tche appelante. La tche n'est plus alors considre par le noyau. Pour l'excuter de nouveau il est ncessaire de l'activer l'aide de la fonction ActivateTask.
Mr Bouajila Wajdi 21

Mise en uvre
Tlcharger le noyau partir du site

http://www.picos18.com/ Installer le compilateur MCC18

Mr Bouajila Wajdi

22