presentation picos18
TRANSCRIPT
![Page 1: Presentation Picos18](https://reader033.vdocuments.pub/reader033/viewer/2022052903/5572113e497959fc0b8ea375/html5/thumbnails/1.jpg)
UE : Atelier STRE
ENSEIGNANT :Mr Wajdi Bouajila
Institut Supérieur des Etudes Technologiques de DjerbaDépartement technologies de l’Informatique
![Page 2: Presentation Picos18](https://reader033.vdocuments.pub/reader033/viewer/2022052903/5572113e497959fc0b8ea375/html5/thumbnails/2.jpg)
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
![Page 3: Presentation Picos18](https://reader033.vdocuments.pub/reader033/viewer/2022052903/5572113e497959fc0b8ea375/html5/thumbnails/3.jpg)
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
![Page 4: Presentation Picos18](https://reader033.vdocuments.pub/reader033/viewer/2022052903/5572113e497959fc0b8ea375/html5/thumbnails/4.jpg)
Système de commande en temps réel
Mr Bouajila Wajdi 4
![Page 5: Presentation Picos18](https://reader033.vdocuments.pub/reader033/viewer/2022052903/5572113e497959fc0b8ea375/html5/thumbnails/5.jpg)
Mr Bouajila Wajdi 5
![Page 6: Presentation Picos18](https://reader033.vdocuments.pub/reader033/viewer/2022052903/5572113e497959fc0b8ea375/html5/thumbnails/6.jpg)
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
![Page 7: Presentation Picos18](https://reader033.vdocuments.pub/reader033/viewer/2022052903/5572113e497959fc0b8ea375/html5/thumbnails/7.jpg)
Noyau préemptif Le fonctionnement du noyau préemptif est illustré à la
figure suivante :
Mr Bouajila Wajdi 7
![Page 8: Presentation Picos18](https://reader033.vdocuments.pub/reader033/viewer/2022052903/5572113e497959fc0b8ea375/html5/thumbnails/8.jpg)
Le Picos18
Mr Bouajila Wajdi 8
![Page 9: Presentation Picos18](https://reader033.vdocuments.pub/reader033/viewer/2022052903/5572113e497959fc0b8ea375/html5/thumbnails/9.jpg)
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
![Page 10: Presentation Picos18](https://reader033.vdocuments.pub/reader033/viewer/2022052903/5572113e497959fc0b8ea375/html5/thumbnails/10.jpg)
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
![Page 11: Presentation Picos18](https://reader033.vdocuments.pub/reader033/viewer/2022052903/5572113e497959fc0b8ea375/html5/thumbnails/11.jpg)
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
![Page 12: Presentation Picos18](https://reader033.vdocuments.pub/reader033/viewer/2022052903/5572113e497959fc0b8ea375/html5/thumbnails/12.jpg)
Organisation PICos18 est organisé autour de 6 entités logicielles :
Mr Bouajila Wajdi 12
![Page 13: Presentation Picos18](https://reader033.vdocuments.pub/reader033/viewer/2022052903/5572113e497959fc0b8ea375/html5/thumbnails/13.jpg)
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
![Page 14: Presentation Picos18](https://reader033.vdocuments.pub/reader033/viewer/2022052903/5572113e497959fc0b8ea375/html5/thumbnails/14.jpg)
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
![Page 15: Presentation Picos18](https://reader033.vdocuments.pub/reader033/viewer/2022052903/5572113e497959fc0b8ea375/html5/thumbnails/15.jpg)
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
![Page 16: Presentation Picos18](https://reader033.vdocuments.pub/reader033/viewer/2022052903/5572113e497959fc0b8ea375/html5/thumbnails/16.jpg)
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
![Page 17: Presentation Picos18](https://reader033.vdocuments.pub/reader033/viewer/2022052903/5572113e497959fc0b8ea375/html5/thumbnails/17.jpg)
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
![Page 18: Presentation Picos18](https://reader033.vdocuments.pub/reader033/viewer/2022052903/5572113e497959fc0b8ea375/html5/thumbnails/18.jpg)
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
![Page 19: Presentation Picos18](https://reader033.vdocuments.pub/reader033/viewer/2022052903/5572113e497959fc0b8ea375/html5/thumbnails/19.jpg)
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
![Page 20: Presentation Picos18](https://reader033.vdocuments.pub/reader033/viewer/2022052903/5572113e497959fc0b8ea375/html5/thumbnails/20.jpg)
Etat des tâches
Mr Bouajila Wajdi 20
![Page 21: Presentation Picos18](https://reader033.vdocuments.pub/reader033/viewer/2022052903/5572113e497959fc0b8ea375/html5/thumbnails/21.jpg)
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
![Page 22: Presentation Picos18](https://reader033.vdocuments.pub/reader033/viewer/2022052903/5572113e497959fc0b8ea375/html5/thumbnails/22.jpg)
Mise en œuvre Télécharger le noyau à partir du site
http://www.picos18.com/
Installer le compilateur MCC18
Mr Bouajila Wajdi 22