Vous êtes sur la page 1sur 33

STR Embarqus

STR Embarqus

STRE
Plan

Systmes temps rel Embarqus

1. Prsentation des systmes temps rel embarqus (STRE) a. rappels sur les systmes temps rel b. contraintes des systmes embarqus c. les STRE 2. Structure et fonctionnement des STRE a. Excutif ou systme b. Ordonnancement c. Entres/sorties

Bertrand Dupouy

3. Dveloppement d'applications embarques 4. Les STRE disponibles 5. Perspectives

ENST 8/06/10

80

ENST 8/06/10

81

STR Embarqus

STR Embarqus

STRE
Plan
1. Prsentation des systmes temps rel embarqus (STRE) a. rappels sur les systmes temps rel b. contraintes des systmes embarqus c. les STRE 2. Structure et fonctionnement des STRE a. Excutif ou systme b. Ordonnancement c. Entres/sorties 3. Dveloppement d'applications embarques 4. Les STRE disponibles 5. Perspectives

ENST 8/06/10

82

ENST 8/06/10

83

STR Embarqus

STR Embarqus

La plateforme embarque (1) Dfinition Des systme embarqus


Compromis matriel/logiciel : Leur place :
Environnement contrl Systme de commande Capteur/Emetteur Noyau temps rel Ordonnancement Communications Langage de programmation

- seules les fonctions simples et prennes sont ralises en matriel, - tendance aux processeurs gnralistes puissants et aux ralisations logicielles, - Le matriel assure la performance, le logiciel apporte portabilit, flexibilit Exemple de matriels embarqus : - processeur + E/S simples : carte puce,

STRE : mise en uvre conjointe de matriel et de logiciel pour grer un dispositif qui nest pas un ordinateur et qui interagit avec le monde extrieur (qui est donc sous contraintes temporelles), Systme dexploitation et logiciels applicatifs sont immergs dans larchitecture matrielle et ne sont pas aussi visibles que sur un PC classique, cest pour cette raison que lon parle de: - systme enfoui (embedded system), - informatique diffuse (pervasive computing) : linformatique est prsente partout, mais on ne la remarque pas,

- processeur + rseau : routeur, - processeur + rseau sans fil + E/S simples : tlphone portable, - processeur + capteurs/metteurs sophistiqus : robots, contrle de processus,

Remarque sur les processeurs embarqus : - grande capacit d'E/S, - un problme : le rapport Mips/Watt, hot RISC (sur les stations) et cold RISC (embarqus)

ENST 8/06/10

84

ENST 8/06/10

85

STR Embarqus

STR Embarqus

La plateforme embarque (2)

Contraintes spcifiques au niveau matriel : o faible encombrement, faible poids, faible consommation, o robustesse: rsistance aux vibrations, chocs, temprature, o processeur : rserve dnergie limite (par le cot, par le poids) ; la consommation dnergie sera peut tre prendre en compte par lordonnanceur (energy aware scheduling) , o mmoire : faible espace dadressage (small footprint) , o disque : souvent absent (disk on RAM)

Contraintes spcifiques au niveau logiciel: o sret de fonctionnement (capacit accorder une confiance justifie au service), o rsistance aux pannes (la panne dun composant ne remet pas en cause la vie du systme), o dveloppement en environnement crois (cross compilation),

ENST 8/06/10

86

ENST 8/06/10

87

STR Embarqus

STR Embarqus

Systme temps rel embarqu : Contraintes temporelles


Le STRE reoit des stimuli via ses capteurs et rpond en actionnant les priphriques adquats. Ces interactions avec le monde extrieur se font de plusieurs manires : - synchrone, (scrutation : clock based system), - asynchrone, (interruption : sensor based system),

Systme temps rel embarqu : Ressources limites


Comme le STR, le STR embarqu (STRE) doit tre prdictible dans les domaines temporel (chances) et logique (sret, vivacit...) Notion de qualit de la rponse : - moins prcise, plus rapidement, - exacte, moins rapidement, - combien d'chances peut-on manquer ?

Le STRE doit offrir une bonne ractivit ces vnements extrieurs : - gestion dterministe des interruptions et des timers, - importance des interruptions qui indiquent loccurrence d'une chance, et en particulier son dpassement. Que doit-on faire dans ce cas : arrter le systme, juste la tche fautive, passer dans un mode dgrad ? Les tches qui grent ces vnements sont : - priodiques (dclenchement frquence fixe), - apriodiques (frquence de dclenchement variable) , - sporadiques (frquence de dclenchement variable mais borne) Remarque : le ressources. critre du WCET conduit la sous-utilisation des le STRE a des contraintes supplmentaires: - mettre des signaux ou rpondre des stimuli externes (capteurs) dans une fentre de temps limite (respect des chances, dterminisme temporel), - se satisfaire de ressources limites (espace mmoire, puissance processeur, nergie, ...), donc utiliser des algorithmes conomes en consommation de mmoire, nergie, cpu, - scurit, reprise en cas d'erreur, fonctionnement en mode dgrad

ENST 8/06/10

88

ENST 8/06/10

89

STR Embarqus

STR Embarqus

Systme temps rel embarqu : spcificits (1)


En plus de ceux fournis par les STR, les STRE devront offrir les services suivants : Gestion des entres-sorties : - gestion dterministe du temps, mise disposition de timers haute rsolution, Gestion de lnergie : - assurer une faible consommation : les algorithmes utiliss par les STR ne pourront pas toujours tre implants par les STRE. Cette gestion peut se traiter dynamiquement soit au niveau matriel soit au niveau de l'ordonnancement, Gestion de la mmoire : - au niveau temporel : allocation des blocs mmoire en temps prdictible (cf. RTSJ), - au niveau espace dadressage : prise en compte des contraintes de faible encombrement. Les STRE proposent galement des facilits pour dimensionner prcisment lespace dadressage dune application, Gestion du disque : - implantation des file systems en RAM (systme de fichier en mmoire flash),

Systme temps rel embarqu : spcificits (2)


Gestion des pannes : - interventions de maintenance difficiles ou impossibles, ce qui implique : o un haut niveau de disponibilit, o des mcanismes de reprise en cas d'erreur, o des possibilits de fonctionnement en mode dgrad, Mthodes de dveloppement : - dveloppement en environnement crois ; mise au point difficile, on attend des outils de trace et de mesure, Adaptabilit : - adaptabilit la variation de configuration logicielle (cf. les managers de RTEMS), - adaptabilit aux diffrentes configurations matrielle : o notion de HAL (Hardware Layer) ou de BSP (Board Support Package) : une couche qui spare du noyau les sections de code spcifiques au processeur. Au-del de cette couche, le systme dexploitation est indpendant du processeur sur lequel il s'excute,

ENST 8/06/10

90

ENST 8/06/10

91

STR Embarqus

STR Embarqus

Consquences :
Consquences de ces nouvelles contraintes : - les algorithmes utiliss dans les STR ne peuvent pas toujours tre implants cause d'une trop grande consommation de ressources : o taille mmoire du code, des donnes, o dgradation des performances en fonction des restrictions de ressources, Exemples : - les garbage collectors des machines Java doivent tre repenss pour les JVM embarques, - gestion des file systems en RAM, - que faire si une chance n'est pas respecte ? Importance des interruptions qui indiquent la proximit d'une chance ou bien qu'on l'a manque.

STRE
Plan

1. Prsentation des systmes temps rel embarqus (STRE) a. rappels sur les systmes temps rel b. contraintes des systmes embarqus c. les STRE 2. Structure et fonctionnement des STRE a. Excutif ou systme b. Ordonnancement c. Entres/sorties 3. Dveloppement d'applications embarques 4. Les STRE disponibles 5. Perspectives

ENST 8/06/10

92

ENST 8/06/10

93

STR Embarqus

STR Embarqus

Quel systme pour les applications embarques ?

Excutif TR Ou systme TR ?
Excutif temps rel, moniteur temps rel (par exemple, RTEMS):

Systme ddi ou gnraliste ? - Le construire en tant que tel (cf. cours STR !!!), - Le construire en le drivant d'un systme classique (UNIX ou autre), pour cela, il faut : Niveau systme : o rduire sa taille ! o donner des outils dterministes pour la gestion du temps (alarmes, signaux), o modifier l'ordonnancement (et la synchronisation) pour respecter les contraintes temporelles, o gestion des ressources prdictible (exemple : allocation mmoire), Niveau interface avec le matriel: o outils pour ajouter simplement des pilotes de priphriques,

- recompil avec l'application, se prsente sous forme dune bibliothque, linke avec l'application. On recharge lensemble [application+systme] chaque fois quon relance lapplication. - Il est de trs petite taille, parce que modulable en fonction de lapplication, - gestion mmoire trs simple donc efficace en terme de temps, - pas d'interface utilisateur, le couple cran/clavier nest plus le priphrique privilgi, Systme temps rel (par exemple, Linux) : - systme charg en entier en mmoire, il reste en mmoire et permet lexcution successive de plusieurs applications, - mais il est plus volumineux quun excutif, - plus portable ( ?), souvent compatible POSIX, - utilisation plus souple (interface du type shell), mais est-ce toujours ncessaire ?

ENST 8/06/10

94

ENST 8/06/10

95

STR Embarqus

STR Embarqus

Comment choisir le systme (ou lexcutif)?

Rsum : Evolution des systmes embarqus


De la simple boucle de gestion des interruptions (annes 70) la notion de systme et de BSP (board support package ) :

Exemple de critres de choix : - sur quelle cible (BSP et processeur) va tre dploye lapplication ? - quels langages de programmation sont disponibles ? - taille mmoire ncessaire en RAM et en ROM (footprint), - pilotes de priphriques disponibles, facilit de leur criture, - outils offerts par la chane de dveloppement croise, - disponibilit ou non du code source, support technique, maturit,

Structure des annes 70 : Boucle : tests de variables dtat et excution de fonctions approries. Mise jour de ces variables par les procdures de gestion des interruptions bas niveau (ISR, Interrupt Service Routines). Ces procdures sont crites en assembleur. Structure des systmes embarqus actuels : Application crite en langage de haut niveau Intergiciel (exemple : RT CORBA) Bibiliothques (exemple : POSIX threads), couches rseau (exemple : IP stack), Noyau temps rel embarqu (exemple : RTEMS). Ordonnancement, synchronisation, gestion mmoire Processeur et carte lectronique spcifique (BSP, Board Support Package ; HAL, Hardware Layer) Matriel pilot (exemple : robot, tlphone portable, ).

ENST 8/06/10

96

ENST 8/06/10

97

STR Embarqus

STR Embarqus

Peut-on se passer du STRE ?

Peut-on se passer du STRE ? 1-La boucle de scrutation des vnements

On va maintenant voir pourquoi la gestion directe des vnements, sans systme dexploitation proprement dit, nest satisfaisante que dans les cas les plus simples. - On envisagera successivement : o La boucle de scrutation, o L excutif cyclique,

La solution la plus simple est la boucle de scrutation de lensemble des priphriques : - Cest une suite de tests qui vrifie ltat de chaque priphrique : o Si cet tat a chang, alors excution dune action, o Sinon : rien - Inconvnients : o La suite dfinit un ordre, donc une priorit implicite, sur les traitements, o Pas de gestion des interruptions : le dialogue avec les priphriques se fait linitiative de lapplication (alors que lobjectif peut tre : event driven !), o Polling (attente active)

ENST 8/06/10

98

ENST 8/06/10

99

STR Embarqus

STR Embarqus

Peut-on se passer du STRE ? 2- Amlioration : Excutif cyclique


Excutif cyclique lmentaire: - Si les traitements sont longs, la simple boucle de scrutation ne suffit pas, on associe une tche chaque test (cf. dispatcher vs scheduler), - Remarque : pas de problme de concurrence entre tches : chacune se termine avant que lon passe la suivante, - Inconvnients : o La boucle doit tre (comme prcdemment) excute une frquence permettant le traitement de tous les vnements, o Toujours pas de gestion des interruptions : le dialogue avec les priphriques est linitiative de lapplication (la boucle !),

Peut-on se passer du STRE ? 3 - Excutif cyclique time driven

- Fonctionnement driv de celui de lexcutif cyclique : o Un timer lance les tches, o Chacune est excute en totalit avant de passer la suivante, o La dernire doit se terminer avant la prochaine interruption timer, o Pour grer plus finement des vnements frquences diffrentes, on peut excuter certaines tches plusieurs fois dans un cycle (cycle majeur et cycle mineur),

- On essaie dexcuter les tches aussi vite et frquemment que possible, mais : o Le respect des chances importe plus que la rapidit du traitement, o Les interruptions ne sont toujours pas gres,

ENST 8/06/10

100

ENST 8/06/10

101

STR Embarqus

STR Embarqus

Peut-on se passer du STRE ? 4- Excutif cyclique : limitations

Domaines dapplication Des systmes embarqus

Les domaines traditionnels : Bilan : - Simple implmenter : excution de traitements frquences rgulires, - Pas de gestion des interruptions. Les priphriques (sauf le timer !) sont grs en polling, linitiative nest pas donne aux stimuli externes, - Pas de contrle du temps dexcution des tches (revient faire FCFS), - Comment grer le temps : o dcouper en sous tches (pb de partage de donnes), o quantum , o dclenchement de chaque tche par un timer , - spatial, avionique (systmes temps rel rpartis embarqus), - robotique, - contrle de processus industriels (chimie, nuclaire, ),

Les nouveaux domaines: - automobile, - mdical, - lectronique grand public (jeux), tlphonie mobile, - systmes embarqus temps rel rpartis grande chelle (digital city,), - informatique diffuse (pervasive computing, ubiquitous computing), wearable computer, domotique, objets intelligents (smart objects), immeubles intelligents

ENST 8/06/10

102

ENST 8/06/10

103

STR Embarqus

STR Embarqus

Linformatique diffuse

Le march (1)

Tendances : Linformatique diffuse, omniprsente (pervasive computing, ubiquitous computing, Weiser 1993) : - linformatique disparat, mais elle est partout, invisible pour lutilisateur elle entretient avec lui des liens permanents, - mise en uvre possible grce aux rseaux sans fil : tous les objets de la vie courante auront-ils une adresse IP ? - Ce march devient un march de masse, - Standardisation (POSIX temps rel, embedded Linux, RTSJ), - interconnexion des quipements par des rseaux sans fil,

March atomis : - Pas d'offre globale (on compose soi-mme sa configuration tant au niveau matriel que logiciel), - Pas de fournisseur dominant (31% de systmes dits "propritaires"), - Microsoft, Sun, IBM sont marginaux,

Rle des systmes embarqus dans ce contexte : - contraintes soft real time(multimdia), - gestion de lnergie, gestion de la localisation (par rapport au rseau et/ou localisation physique ?) , - configuration dynamique de rseaux sans fil (rseaux ad hoc), - information contextuelle information), (validit seulement locale dune

ENST 8/06/10

104

ENST 8/06/10

105

STR Embarqus

STR Embarqus

Le march (2)

STRE
Plan

Type des marchs : Secteur Scientifique, arospatilae, militaire Transports Industrie Bureau Maturit Forte Contraintes Performance, fiabilit Tendances Rduction des cots (conomie d'chelle) Ergonomie, rseau Rseau Standardisation, puissance puissance 1 Prsentation des systmes temps rel embarqus (STRE) a. rappels sur les systmes temps rel b. contraintes des systmes embarqus c. les STRE 2 Structure et fonctionnement des STRE a. Excutif ou systme b. Ordonnancement : prcisions c. Entres/sorties 3 Dveloppement d'applications embarques 4 Les STRE disponibles 5 Perspectives

Moyenne Fiabilit, cot Forte Fiabilit, cot Forte Performance, cot Tlecomm. Forte Performance, Fiabilit Gd public Faible Performance, Internet cot Commerce elec. Faible Fiabilit, cot, Commerce en ligne scurit

ENST 8/06/10

106

ENST 8/06/10

107

STR Embarqus

STR Embarqus

Rappels sur la premption Rappels : Objectifs du STRE


Premption: - les tches peuvent tre interrompues par des facteurs qui leurs sont trangers, Une application TR embarque doit rpondre des stimuli extrieurs : - dans un certaine fentre de temps, - mme dans le pire cas, - dans un contexte de ressources (trs) rduites, - exemple : un vnement externe peut ractiver une plus prioritaire que la courante, il faut alors : o sauvegarder le contexte de la tche courante, o crer ou restaurer le contexte de la tche dmarrer,

Problmes lis : en assurant le respect des chances pour les tches critiques, Attention : une tche de faible importance peut avoir de fortes contraintes de temps, et une tche de forte importance peut avoir de faibles contraintes de temps), - quelles tches peut-on prempter (notion de priorit) ? - gestion fine du contexte, - gestion des donnes partages : o entre tches, entre tches et ISR il faut excuter au moins un sous-ensemble minimal des tches mme si la charge augmente (gracefull degrade) l'objectif n'est PAS le rendement, o files de messages, smaphores, ,

ENST 8/06/10

108

ENST 8/06/10

109

STR Embarqus

STR Embarqus

Gestion des Priorits


Comment grer les priorits : - la priorit doit-elle reflter : o la priode (respect des chances) o la criticit (la tche dont lexcution est la plus importante nest pas forcment celle dont la priode est la plus courte) - priorit fixe (RMS) ou variable (EDF)

Ordonnancement Et changement de contexte


La process table - une entre par tche - chaque entre contient (ou permet de retrouver) : o copie de registres o informations sur la pile : adresse, taille, utilisation o informations sur la consommation des ressources o tat du processus o smaphore sur lequel il est bloqu o les messages qui lui ont t envoys

ENST 8/06/10

110

ENST 8/06/10

111

STR Embarqus

STR Embarqus

Mcanisme Du changement de contexte (1)

Le changement de contexte : La fonction o on ne revient jamais

Choisir un des processus qui sont dans ltat PRET (READY) ou le processus CURRENT : - rle du scheduler (qui peut tre une fonction sched ()) Le scheduler : - choisit le plus prioritaire des processus READY ou le CURRENT - fait ventuellement passer le CURRENT en READY - remarque : o toutes les fonctions du systme cooprent pour grer ltat des processus : ltat est modifi par les smaphores, les interruptions, qui appelle ensuite sched () - fait passer le processus choisi en CURRENT - appelle une fonction du type ctxswitch

La fonction ctxswitch: - change les pointeurs de pile, etc, - sauve les registres, - restaure le contexte du processus rordonnanc, - ATTENTION : ds que le compteur ordinal est restaur, on part dans le code du processus rordonnanc : on ne revient pas de la fonction ctxswitch qui fait le changement de contexte !!!!

ENST 8/06/10

112

ENST 8/06/10

113

STR Embarqus

STR Embarqus

Le changement de contexte :

Changement de contexte Et ordonnancement

Quelques dtails - la valeur sauve pour le CO par ctxswitch est sa propre adresse de retour: o cest celle o devrait revenir ctxswitch si elle tait une fonction ordinaire mais elle est appele par un processus A, elle donne la main un processus B, qui devra repasser le contrle, non pas a ctxswitch, mais A

- les processus appellent sched () pour faire la changement de contexte aprs avoir chois le processus activer, donc : o tous les processus suspendus reviennent dans sched ()aprs lappel ctxswitch o cest le retour de sched ()qui les renvoie dans la fonction qui a appel sched()

ENST 8/06/10

114

ENST 8/06/10

115

STR Embarqus

STR Embarqus

Le processus null ou idle,

Gestion de la concurrence : Les smaphores

Opration P : le rle de sched ()est seulement de choisir un processus parmi les READY et CURRENT : - elle ne cr PAS de processus, - elle ne vrifie pas si la liste des READY est vide, - consquence : il doit toujours y avoir au moins un processus dans ltat READY : le null process - si le compteur passe ngatif : o faire passer le processus de CURRENT BLOCKED, o indique le numro du smaphore dans lentre de la process table associe au processus o appel sched()

Opration V : - si le compteur passe ngatif ou nul : o choisir un READY, processus et le faire passer de BLOCKED

o appel sched()

ENST 8/06/10

116

ENST 8/06/10

117

STR Embarqus

STR Embarqus

Rappel sur lordonnancement de tches dpendantes (ici, EDF)

Rappel sur lordonnancement de tches dpendantes (EDF)

Si une tche (ex : gestion de la direction dun vhicule) attend un rsultat fourni par une autre (ex : dtecteur de choc), on parle de tches dpendantes,

Exemple pour trois tches T1, T2 et T3 dont on donne ci-dessous le graphe de dpendance :

Modification des paramtres pour prendre en compte les dpendances entre tche EDF : - chaque tche doit avoir une chance dont la date est antrieure celle des tches qui dpendent delle. Lchance Di de Ti devient : D*i = min { Di, min{ D*j - C j } }, pour j tel que Ti prcde Tj Rappel des formules : D*i = min { Di, min{ D*j - C j } }, pour j tel que Ti prcde Tj - une tche ne peut tre active que si toutes ses prcdentes ont t actives. Donc la date de rveil dune tche doit tre suprieure celle de ses prcdentes laquelle a t ajoute la dure dactivation. La date de rveil ri de Ti devient : r*i = max { ri, max{ r*j + C j } }, pour j tel que Tj prcde Ti r*i = max { ri, max{ r*j + C j } }, pour j tel que Tj prcde Ti

Si la dpendance est une communication par message, on ajoute le dlai ! ij d la dure de la transmission et la date de rveil devient : r*= max { r, max{ r*+ C+ ! j } , pour j tel que Tj prcde Ti

ENST 8/06/10

118

ENST 8/06/10

119

STR Embarqus

STR Embarqus

Gestion des interruptions

Gestion Des interruptions

On associe chaque interruption une fonction de traitement (vecteur dinterruption, ISR) : - Attention au partage de donnes o bufferisation , o quand passer les donnes aux tches ?

Tables des vecteurs, priorits, masquage, traitement Horloges - real time clock (interrompt le processeur) o envoie une interruption chaque tick o ne gre pas de compteur, le dcompte des interruptions doit tre fait par le systme o sert grer des alarmes (quantum, chance), utilisation dune liste du type delta - time of day clock (consult sa demande par le systme) o mise jour dun compteur qui sera ventuellement lu par le systme ou les applications

Quand activer ou inhiber les interruptions ? - priodiquement : tous les n tics dhorloge, - premption,

Entres sorties : - initialisation des vecteurs (bas niveau), - criture du pilote et des fonctions de haut niveau

ENST 8/06/10

120

ENST 8/06/10

121

STR Embarqus

STR Embarqus

Les entres-sorties dans un STRE

Spcificit des systmes embarqus : Gestion de lnergie

Elment dterminant d'un STRE : la gestion des entres-sorties : - lire (priph. , donnes, chance) On doit pouvoir grer les e/s comme on gre les processus : - satisfaire la plus prioritaire d'abord, - annuler une demande lorsque son chance est dpasse, - rordonner les demandes si une plus prioritaire arrive,

Les dispositifs embarqus sont souvent contraints par la ressource nergie (les batteries ont une capacit limite) : - quel niveau grer lnergie : systme, application, matriel ?

Le systme peut prendre en charge cette gestion, car il a une vue globale : - ordonnancement prenant en compte la gestion de lnergie Plusieurs stratgies :

Si les tches partagent des ressources (capteurs/metteurs, accs au rseau) : - utiliser des algorithmes dordonnancement entre tches dpendantes, - utiliser PCP ou PIP pour accder aux smaphores grant les ressources, Attention aux mcanismes matriels : -entres-sorties excutes par le processeur, -entres-sorties indpendantes du processeur (DMA),

- transition (passage dun tat un autre), exemple : mise en veille du processeur - adaptation (changement de technologie), exemple : remplacer un disque par de la mmoire flash - modification de la charge dun composant, par exemple : utiliser des caches (mmoire, disque) ce qui modifie les stratgies de gestion des disques ,

Le matriel propose des outils : mise en veille, rduction de frquence,

ENST 8/06/10

122

ENST 8/06/10

123

STR Embarqus

STR Embarqus

STRE
Plan

1. Prsentation des systmes temps rel embarqus (STRE) a. rappels sur les systmes temps rel b. contraintes des systmes embarqus c. les STRE 2. Structure et fonctionnement des STRE a. Excutif ou systme b. Ordonnancement c. Entres/sorties 3. Dveloppement d'applications embarques 4. Les STRE disponibles 5. Perspectives

ENST 8/06/10

124

ENST 8/06/10

125

STR Embarqus

STR Embarqus

Environnement de dveloppement

Environnement de dveloppement

Cycle de mise au point : Dveloppement en environnement crois : compilateur crois et outils associs, suivi de mise au point distance ( remote debugging), Les dveloppements ne se font plus en assembleur, le langage de haut niveau peut prendre en main les problmes proches du matriel, Utilisation de plus en plus courante de logiciels du type gnu (gcc, gdb) Style de programmation spcifique (pas d'allocation dynamique de ressources, gestion de timers, criture de pilotes dE/S, ...)
Host (hte) 1. tlchargement ROM RAM 2. Excution/mise au point Processeur B Moniteur en ROM Pas d'cran Pas de disque Outils dedveloppement crois

Edition de sources

Compilation croise et ditions de liens Tlchargement Moniteur Excution et mise au point Systme + application EPROM, Flash RAM

Target (cible)

Processeur A

Le moniteur sert dmarrer ( booter ) la carte : il initialise les registres de base du processeur, et gre au moins une ligne srie pour le tlchargement.

ENST 8/06/10

126

ENST 8/06/10

127

STR Embarqus

STR Embarqus

Environnement de dveloppement
Plate-forme logicielle de base : - un STRE (ex : RTEMS), - un ou plusieurs compilateurs croiss (ex : gcc sur PC-Linux gnrant du code pour Motorola PowerPC) et des outils de dveloppement croiss (les bibliothques C), - un moniteur (ex : ppcboot) et des protocoles de communication pour le tlchargement et la mise au point (ex : tftp), On rappelle ci-dessous la place du BSP qui isole le systme de la configuration matrielle :
Bibliothque, threads, etc Systme Pilotes BSP

Exemples
RTEMS et ppcboot :
Target (cible) 1. tlchargement ROM RAM 2. Excution/mise au point Processeur B Moniteur en ROM Pas d'cran Pas de disque Outils dedveloppement crois Host (hte)

Processeur A

Embedded Linux (< 500K octets avec TCP-IP), et mise au point avec remote gdb :
Cible : plateforme PowerPC MPC860 1. tlchargement BDM 2. accs nfs 3. Excution/mise au point Hte : PC sous Linux Port parallle Interface Ethernet Port srie COM1

Processeur de base Carte particulire Matriel

Pour rduire les cots - simulateurs, - plate-forme de dveloppement propritaires, - outils free software,

RAM Interface Ethernet Port srie

ENST 8/06/10

128

ENST 8/06/10

129

STR Embarqus

STR Embarqus

Du ct du matriel

Quelques critres Pour la conception

A vrifier du ct architecture matrielle : - gestion des interruptions, - gestion de la mmoire (inhiber la pagination,), - fonctionnement des horloges, - fonctionnement des caches (donnes, instructions, peut on les verrouiller, les geler, )

Qualit de la rponse aux stimuli externes, - moins prcise, plus rapidement, - exacte, moins rapidement, - combien d'chances peut-on manquer ?

Choix des algorithmes : - ils devront se satisfaire de ressources limites (mmoire, vitesse, nergie, ...), - ordonnancement appropri -> RMS , EDF, - E/S chance -> gestion dalarmes et de timers,

ENST 8/06/10

130

ENST 8/06/10

131

STR Embarqus

STR Embarqus

Facteurs intervenant dans la gestion du temps (rappels)

STRE
Plan

Facteurs matriels dindterminisme dans la gestion mmoire : - pagination (en gnral inhibe en embarqu), - fonctionnement des mmoires caches, matriels dindterminisme dans la gestion du processeur : - pipe-line, - superscalaire, VLIW Attention au partage des ressources : - pb. de concurrence (inversion de priorit),

1. Prsentation des systmes temps rel embarqus (STRE) a. rappels sur les systmes temps rel b. contraintes des systmes embarqus c. les STRE 2. Structure et fonctionnement des STRE a. Excutif ou systme b. Ordonnancement c. Entres/sorties 3. Dveloppement d'applications embarques 4. Les STRE disponibles 5. Perspectives

Facteurs

Attention la gestion des entres-sorties bas niveau: - priorits, chances, interruptions - attention au bon typage des variables (cf. volatile en C pour laccs aux registres des priphriques),

ENST 8/06/10

132

ENST 8/06/10

133

STR Embarqus

STR Embarqus

Quelques STR embarqus ...


Propritaires : - LynxOS de Lynx, 4% du march, QNX, 5% du march, - iRMX, produit par Intel pour 8086, 5% du march, - pSOS (ISI) et VRTX (Microtec) pour 68xxx, 9% du march, - VxWorks, 286 Ko, de WindRiver (terminaux X, Mars Pathfinder), 11% du march, - Windows CE (version rduite de NT, pas temps rel, 4Mo RAM), sur Intel et MIPS, - VRTX, produit par Hunter et Ready pour 68xxx, 8% du march, - Symbian pour les tlphones portables, - JavaCard (24 64 Ko de ROM, 512o 2Ko de RAM) free software : - RTEMS de OAR, implment en C et Ada, port sur de trs nombreux processeurs et BSP, - eCos de Red Hat, - Linux embarqus varis (RT-Linux, Linux-RK) universitaires : Spring, ARTS, Mars, TinyOS

Quelques systmes Embarqus :

Parmi les systmes temps rel ports sur de nombreuses plateformes, citons : - RTEMS, - Linux (RTLinux), Dans le domaine des systmes ddis la tlphonie mobile : - Symbian, - Mobilinux, JVM : la version RTSJ, ARINC 653, orient avionique, est reprsentatif des recherches actuelles en haute disponibilit. Dans le monde des systmes embarqus sur les mobiles, mais non temps rel : Microsoft Mobile Windows et la JVM J2ME.

ENST 8/06/10

134

ENST 8/06/10

135

STR Embarqus

STR Embarqus

Quelques systmes embarqus: RTEMS

Quelques systmes embarqus : Linux temps rel


RT Linux (Real time Linux), http://www.rtlinuxfree.com et RTAI (Real Time Application Interface for Linux), http://www.rtai.org) : - Construits partir du systme temps partag Linux, qui prsente les handicaps suivants : o Il existe dans le noyau de longues sections pendant lexcution desquelles les vnements externes sont masqus. Il peut tre prempt lorsquil effectue un appel systme ou lorsquil excute le code relatif une interruption. Pas dapproche temps rel pour grer les priphriques, support partiel de linterface POSIX temps rel. Deux pour rendre Linux temps rel : - applications de patches sur le noyau pour y placer des points de premption, - insertion dun second noyau entre Linux et le matriel (approche adopte par RTAI), Mobilinux (http://www.mobilinux.com), construit sur le noyau Linux premptible de Montavista. Il se satisfait dune empreinte mmoire rduite, propose un protocole publish/subscribe, et offre une gestion dynamique de lnergie (DPM : dynamic power management) ainsi que des outils de mesure et de trace.

RTEMS (Real-Time Executive for Multiprocessor Systems) de OAR (On-Line Applications Research Corporation) http://www.rtems.com : - temps rel dur, port sur de trs nombreuses plateformes matrielles, - excution dterministe : elle ne varie pas en fonction du nombre dobjets prsents sur le systme, temps de latence d aux interruptions prdictible, - ordonnancement premptif, bas sur les priorits, RMS fourni, - systme est configurable : seules sont charges les fonctionnalits (tches, smaphores, timers, ) ncessaires une application donne (notion de manager), on optimise ainsi les performances en vitesse et on minimise lespace dadressage utilis, - possibilit dintgrer des services spcifiques par la mise en uvre dextensions (pour insrer des traces, etc) - implment en C et Ada, API POSIX, versions pour Motorola PPC, M68xxx, Intel ix86, i960,MIPS, SPARC,

ENST 8/06/10

136

ENST 8/06/10

137

STR Embarqus

STR Embarqus

Quelques systmes embarqus (sur mobiles ): Symbian


Symbian, http://www.symbian.com : - construit au dessus de EKA2 qui est un noyau mono utilisateur, multitches, premptif, peu consommateur de mmoire et dnergie. Priorits premptives, synchro. PIP, - appels systme en temps born, timer haute rsolution, latence pour le traitement des interruptions est de 0,5ms 1ms. Symbian ne fait pas dhypothse sur le MMU du processeur et propose plusieurs modles de mmoire. - outils de communication entre threads, de gestion des interruptions, dcriture de pilotes, des moyens pour le contrle gestion de lnergie et la dfinition du HAL. La gestion de la scurit et des fichiers est galement prvue. - Gestion de pile GSM. -

Quelques systmes Embarqus : ARINC 653


ARINC 653 ( Aeronautical Radio Inc, http://www.arinc.com) est une spcification pour lavionique qui dcrit linterface que doit proposer un STRE dans une perspective de haute disponibilit : - indpendance de lexcution des tches de criticits diffrentes en introduisant la notion de partition. Une partition isole les donnes et programmes dune application du point de vue mmoire mais aussi du point de vue temporel : chaque partition dispose de son propre espace dadressage et de crneaux de temps. Elle ne peut empiter ni sur les crneaux temporels ni sur lespace mmoire des autres partitions. ordonnancement cyclique : une partition peut tre active une ou plusieurs fois par cycle. A lintrieur dune partition diffrentes tches peuvent tre ordonnances de faon priodique ou non, la norme attend un ordonnancement par priorit et premptif. - La communication entre partitions se fait par messages, les messages sont reus et mis par les applications sur des ports, le support de communication est gr par le systme, les applications ne voient que les ports. - Les services fournis par le systme sont aussi isols dans une partition spcifique. Traitement des pannes par limplantation du Health Monitor.

ENST 8/06/10

138

ENST 8/06/10

139

STR Embarqus

STR Embarqus

Quelques systmes embarqus: RTSJ


RTSJ, Real-Time Specification for Java est une spcification de fonctionnalits temps rel pour les JVM (http://www.rtj.org) : - Les apports de cette spcification sont orients vers le dterminisme temporel : o Lordonnancement doit tre premptif, avec une gestion FIFO des threads ayant la mme priorit, la JVM ne peut changer la priorit dun thread que dans le cas de linversion de priorit, o Gestion des threads au niveau utilisateur : ! caractrisation fine des threads temps rel en prcisant leur cot, leur chance et leur priode, ! cration de threads de priorit suprieure celle du garbage collector. ! service de contrle dadmission : on peut demander le calcul de lordonnanabilit dun jeu de threads. RTSJ propose aussi des outils pour construire des ordonnancements RMS, EDF ou LLF, pour crer des zones de mmoire qui ne sont pas gres par le garbage collector, et met disposition des timers haute rsolution dterministes ainsi que des mthodes pour la gestion des vnements asynchrones.

Quelques systmes embarqus sur les mobiles : Windows Mobile

Windows Mobile (http://www.microsoft.com/windowsmobile) : - Windows Mobile 5.0 de Microsoft nest pas temps rel mais propose la technologie push qui permet de recevoir des mails le plus tt possible. Une technologie qui a fait le succs de RIM (Research In Motion, http://www.rim.com) et Blackberry (http://www.blackberry.com) : 3 millions d'utilisateurs dans le monde, - possibilit de stockage des informations utilisateur en mmoire persistante.

ENST 8/06/10

140

ENST 8/06/10

141

STR Embarqus

STR Embarqus

STRE
Plan

Perspectives : logiciel
Les systmes : du plus petit au plus grand : - Systmes miniatures pour les rseaux de capteurs (micro systmes) : TinyOS de Berkeley,

1. Prsentation des systmes temps rel embarqus (STRE) a. rappels sur les systmes temps rel b. contraintes des systmes embarqus c. les STRE 2. Structure et fonctionnement des STRE a. Excutif ou systme b. Ordonnancement c. Entres/sorties 3. Dveloppement d'applications embarques 4. Les STRE disponibles 5. Perspectives

- Systmes embarqus distribus grande chelle : quel middleware (RT CORBA, ) ? Ordonnancement : notions de partitions (ARINC 653), ordonnancement dynamique et adaptable (flexible scheduling, power aware scheduling), Gestion mmoire dterministe (cf les outils RTSJ), Gestion de lnergie : par lordonnancement, par le matriel, la compilation ? Compilateurs , exemple : impact de la compilation sur la gestion de lnergie : - rduction du nombre dinstructions (+) - unrolling des boucles (-)

ENST 8/06/10

142

ENST 8/06/10

143

STR Embarqus

Perspectives : matriel

Chaque composant doit avoir des performances dterministes : - caches performants et prdictibles, - bus (cf. CAN, TTP) et rseau (cf. TDMA, IP ?), - prfrer des pipe-lines uniques aux architectures superscalaires,

Loi de Moore : les performances technologiques des composants sont multiplies par deux tous les un trois ans, mais le stockage de lnergie ne suit pas cette loi

Prendre en compte la gestion de lnergie, lencombrement, la fiabilit,

ENST 8/06/10

144

Vous aimerez peut-être aussi