presentation picos18

22
UE : Atelier STRE ENSEIGNANT :Mr Wajdi Bouajila Institut Supérieur des Etudes Technologiques de Djerba Département technologies de l’Informatique

Upload: saf-bes

Post on 04-Aug-2015

195 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Presentation Picos18

UE : Atelier STRE

ENSEIGNANT :Mr Wajdi Bouajila

Institut Supérieur des Etudes Technologiques de DjerbaDépartement technologies de l’Informatique

Page 2: Presentation Picos18

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

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

Système de commande en temps réel

Mr Bouajila Wajdi 4

Page 5: Presentation Picos18

Mr Bouajila Wajdi 5

Page 6: Presentation Picos18

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

Noyau préemptif Le fonctionnement du noyau préemptif est illustré à la

figure suivante :

Mr Bouajila Wajdi 7

Page 8: Presentation Picos18

Le Picos18

Mr Bouajila Wajdi 8

Page 9: Presentation Picos18

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

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

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

Organisation PICos18 est organisé autour de 6 entités logicielles :

Mr Bouajila Wajdi 12

Page 13: Presentation Picos18

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

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

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

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

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

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

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

Etat des tâches

Mr Bouajila Wajdi 20

Page 21: Presentation Picos18

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

Mise en œuvre Télécharger le noyau à partir du site

http://www.picos18.com/

Installer le compilateur MCC18

Mr Bouajila Wajdi 22