Vous êtes sur la page 1sur 50

Systmes dexploitation embarqus

Brique ROSE Samuel Tardieu sam@rfc1149.net


cole Nationale Suprieure des Tlcommunications

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

1 / 51

Systme dexploitation

Un systme dexploitation : fait le lien entre le logiciel (application) et le matriel abstrait certaines caractristiques du matriel fournit des services communs (accs aux ressources, synchronisation, gestion de chier) ore des possibilits de tests et de traces

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

2 / 51

Systme embarqu

Gnralement, un systme embarqu : dispose de ressources limites ne possde pas toujours de systme de chiers doit tre le moins cher possible ne doit pas consommer dnergie inutilement

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

3 / 51

Approche minimaliste

Dans une approche minimaliste, le systme dexploitation : initialise le matriel donne la main lapplication Le systme dexploitation peut galement tre rduit nant (carte nue).

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

4 / 51

Approche maximaliste

Dans une approche maximaliste, le systme dexploitation : fournit tous les services dun ordinateur de bureau fournit des machines virtuelles fournit des bibliothques graphiques Exemple : le projet SPIF de lENST (Linux)

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

5 / 51

Approche intermdiaire

En gnral, le systme dexploitation fournit les services : de gestion de temps daccs au rseau de gestion de la mmoire

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

6 / 51

Compromis

Des compromis doivent tre faits : mono-programme / multi-programme mono-thread / multi-thread allocations statiques / allocation dynamique rservation des ressources / allocation des ressources la demande

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

7 / 51

Exemple : PalmOS

gestion de la mmoire simplie primitives de gestion de bases de donnes et de lcran bibliothques mathmatiques applications minimalistes (philosophie du Palm) mono-application et mono-thread ne ncessite pas beaucoup de puissance (m68k 20MHz, ARM 200MHz en mulation m68k)

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

8 / 51

Exemple : Windows CE

tous les services dun Windows abilit dun Windows (mauvaise) facilit de portage des applications pas de gestion du temps-rel ncessite un processeur trs puissant (ARM 400MHz)

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

9 / 51

Exemple : Symbian OS

orient tlphonie gestion des contacts gestion de rseaux divers (SMS, BlueTooth, GSM, TCP/IP) gestion multimedia synchronisation sur rseau lent over the air supporte Java (JavaPhone) ncessite moins de ressources que Windows CE

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

10 / 51

Exemple : Linux

tous les services de Linux abilit de Linux (bonne) multi-applications trs gourmand en ressources logiciel libre ncessite un processeur puissant (PowerPC 50MHz)

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

11 / 51

Exemple : RTEMS et eCos

excutif congurable pour ne garder que ce qui est ncessaire services de synchronisation gestion du temps entres/sorties gestion du rseau logiciel libre ne ncessite pas beaucoup de puissance (m68k 33MHz)

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

12 / 51

Exemple : Forth

langage de programmation et systme lui tout seul mono-application mais multi-threads en mode coopratif permet le test interactif ne ncessite pas beaucoup de ressources (PIC 16f876, 2k de programme, 80 octets de RAM)

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

13 / 51

Caractristiques

Avant de choisir son systme, il faut dnir : le prix de revient maximum de chaque unit le temps de rponse aux actions de lutilisateur la capacit totale de traitement la disponibilit et la possibilit de le modier le support disponible et la abilit du fournisseur

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

14 / 51

Rappels de compilation croise

Dnitions : Lhte est la machine sur laquelle on compile La cible est la machine pour laquelle on compile Dirences possibles : Type de microprocesseur (big/little endian) Taille des mots (reprsentation des donnes de la cible) Systme dexploitation (conventions dappel)

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

15 / 51

Moniteur

Le moniteur : congure la cible (mmoire, ports de communication) permet de dialoguer et de recevoir des commandes autorise le diagnostic permet de charger un autre programme permet de reprogrammer la cible (ash)

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

16 / 51

Exemples de moniteurs

OpenFirmware : Sun Sparc et Apple Macintosh rcents TinyBoot : version rduite dOpenFirmware PPCboot : plate-forme PowerPC embarque Dirents bootloaders : permettent uniquement de charger du code Pour la programmation ombilicale, petits moniteurs maison

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

17 / 51

OpenFirmware

Standard IEEE 1275 Interprteur de bytecode bas sur Forth (fcode tokens) Indpendant de larchitecture (Sparc et Macintosh) Mots standards pour examiner le bus Du bytecode est charg depuis les cartes dextension pour enrichir le systme En dveloppement pour PC (OpenBios)

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

18 / 51

Exemple OpenFirmware

Type go to resume ok devalias screen /pci@1f,0/pci@1,1/SUNW,m64B@2 net /pci@1f,0/pci@1,1/network@1,1 [...] ok dev screen ok dimensions .s 1280 1024 ok dev net ok watch-net Internal loopback test --

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

20 / 51

Transfert de contrle

Le moniteur peut galement charger un autre programme (noyau) passer des structures de donnes et des mthodes au noyau (factorisation des fonctionalits) reprendre la main si le noyau quitte reprendre la main sur interruption (debug) reprendre la main en cas de blocage de la machine

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

21 / 51

Mthodes de communication

Un moniteur utilise un moyen de communication standard


liaison srie, clavier cela monopolise un priphrique quon ne peut plus tester

ou un moyen de communication ad-hoc


protocole 1 l cela libre les autres priphriques

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

22 / 51

Conguration dun port

La conguration dun systme de communication dans un moniteur est dirente davec un OS : les spcicits matrielles ne sont pas masques la manipulation se fait port par port et parfois bit par bit On chappe rarement la lecture de la datasheet du systme utilis.

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

23 / 51

Exemple : RS232sur PIC 16f876

Les direntes tapes sont : slectionner la vitesse du port B = ou N = 64 activer le mode asynchrone slectionner le format (8 ou 9 bits) congurer les interruptions pour lmission congurer les interruptions pour la rception congurer les interruptions pour les priphriques congurer les interruptions globales
Fosc N(X +1)

(X [0, 255]) et le mode N = 16

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

24 / 51

Protocole 1 l

En ralit, 1 l plus la masse Protocole half-duplex Utilisation de polling : le matre demande rgulirement lesclave sil a quelque chose transmettre Ncessit de synchroniser (statiquement ou dynamiquement) les horloges

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

25 / 51

Exemple de protocole 1 l

Le matre envoie un caractre rgulirement, ou ? pour rien Le matre envoie un : suivi dun : ou ? pour transmettre ces deux derniers (chappement) Aprs chaque caractre reu, lesclave envoie un caractre ou ? sil na rien envoyer Lesclave utilise les mmes squences dchappement

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

26 / 51

Protocole RS232

Protocole full-duplex (TX pour la transmission et RX pour la rception) Ltat au repos de la ligne est -12V Un bit de start (ligne +12V) permet de dtecter le dbut de la transmission Chaque bit est chantillonn plusieurs fois (3 ou 5) pour vrier la bonne synchronisation des horloges Un bit de stop (ligne -12V) permet de vrier la cohrence des vitesses (avant le prochain bit de start framing )

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

27 / 51

Exemple de transmission RS232


Transmission du caractre Z de code ASCII 90, soit 5a en hexadcimal ou 01011010 en binaire Transmission f bits par secondes (par exemple, f = 9600bps) 1 bit de start, 1 bit de stop (parfois 1,5 ou 2), pas de parit (parfois parit paire ou impaire) Vitesse eective : t= +12V 0V -12V start
Samuel Tardieu (ENST)

f 10

octets par seconde (surcot de 25%) stop

1 f

1er octet (8 bits de donnes)


Systmes dexploitation embarqus

start 2nd octet


28 / 51

Programmation des composants

Certains composants sont programmables (une ou plusieurs fois) : en utilisant un programmateur ou en utilisant la programmation in-situ avec ou sans tension dalimentation spciale parfois depuis du code quils excutent eux-mmes La dernire classe est la plus intressante.

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

29 / 51

Avantage de la reprogrammation

Il est possible dinstaller un moniteur sur le composant Aucun appareillage nest ncessaire pour le reprogrammer : il sut de disposer dun moniteur Il est possible de tester facilement des changements Il est possible de mettre jour des appareils en production sils ont t prvus pour cela

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

30 / 51

Moniteur complet minimaliste

Un moniteur complet minimaliste pourrait accepter un entier et le placer sur une pile crire le deuxime entier partir du sommet ladresse se trouvant sur le sommet sauter ladresse se trouvant sur le sommet Un tel moniteur peut prendre le contrle au boot transfrer le contrle un programme si une condition est vraie (bouclage I/O)

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

31 / 51

Contrle du moniteur
Problme Comment faire lorsquon ne dispose pas dentre disponible ddier au moniteur ? Solution On peut utiliser une sortie comme entre en la testant au moment du dmarrage.

On choisit bien entendu R2 >> R1.


Samuel Tardieu (ENST) Systmes dexploitation embarqus 32 / 51

Chargement dun noyau

Un noyau peut tre charg : depuis un support de masse (disque dur, ROM, EEPROM, ash) depuis une laison avec un systme extrieur (srie, ethernet, WiFi) Il peut tre compress ou dcompress, chir, sign, etc. Le moniteur doit savoir accder ces supports.

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

33 / 51

Anatomie dune application

Une application (par exemple un noyau) est compose de plusieurs sections : (exemple de ELF) .text : le code excutable ; il sera log un endroit gal ou dirent de celui o il se trouve stock, en mmoire vive ou morte .data : les donnes initialises ; elles seront copies en mmoire vive avant de lancer le sous-programme principal .bss : les donnes non initialises ; une zone de mmoire vive de la bonne taille sera initialise zro

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

34 / 51

Exemple : PC sous FreeBSD

Le boot de FreeBSD se fait en direntes tapes : le moniteur du PC (BIOS) charge le premier secteur (boot0) du priphrique de dmarrage et lexcute boot0 charge le premier secteur de la partition de dmarrage choisie et lexcute (boot1) boot1 extrait boot2 de la partition de dmarrage ( un endroit xe) et lexcute boot2 charge et excute /boot/loader (moniteur contenant un interprteur de commande Forth) ou directement un noyau

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

35 / 51

Chargement travers le rseau

Le chargement par dessus TCP/IP implique : lobtention dune adresse IP la communication avec un serveur de chiers la rcupration dun noyau adquat Dirents protocoles interviennent.

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

36 / 51

Obtention dune adresse IP

Ladresse IP : peut tre obtenue par bootp, DHCP, bootparam est accompagne de paramtres supplmentaires (masque de sous-rseau, passerelle, serveurs de nom, domaine courant) peut tre accompagne dinformations de boot (serveur, protocole, paramtres)

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

37 / 51

Obtention dun noyau

Le noyau peut tre obtenu par TFTP : protocole trivial bas sur UDP, peu scuris NFS : montage dun systme de chiers sur lequel se trouve le noyau FTP, samba : tout systme peut tre a priori utilis, ce nest quune convention entre le systme embarqu et le serveur

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

38 / 51

Compression de lapplication

Lapplication peut tre accessible par le moniteur un format compress : le moniteur doit savoir la dcompresser lencombrement statique du moniteur est augment la mmoire ncessaire pour la dcompression doit tre prise en compte :
environ 32Ko pour le format gzip environ 900Ko pour le format bzip2

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

39 / 51

Systmes sans stockage

Les systmes sans stockage sont soit autonomes soit dpendants de ressources extrieures Sur un systme Unix, les accs certaines partitions (voire toutes) et le swap peuvent avoir lieu par dessus NFS.

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

40 / 51

Stockage en mmoire ash

La mmoire ash connat les mmes contraintes (en plus prononces) quun disque dur :
lcriture se fait par bloc (secteur sur un disque) entier plus on crit au mme endroit, plus il suse

Par contre :
la mmoire ash cote beaucoup plus cher et est beaucoup plus fragile la mmoire ash consomme beaucoup moins de courant et ncessite moins de place

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

41 / 51

Gestion de la mmoire ash

Proprits souhaitables dun systme de gestion de chiers en mmoire ash : rpartition homogne des critures (wear levelling ) cohrence du systme de chier, mme en cas de coupure de courant en plein milieu dune opration souplesse dun systme de chiers traditionnel

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

42 / 51

Solutions disponibles

systmes de chiers basiques (pas de wear levelling, pas srs) standards PCMCIA FTL (Flash Translation Layer ) et NFTL (brevets, donc inutilisables) systme de chiers JFFS (Journalling Flash File System) et JFFS2 (Linux, eCos en cours)

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

43 / 51

JFFS/JFSS2

les donnes compresses sont crites squentiellement dans la mmoire ash (journalling ) la mmoire ash est entirement analyse au moment du montage seules les mta-donnes qui ne peuvent tre reconstitues rapidement sont gardes en mmoire pour pouvoir librer la totalit dun bloc, les informations non obsoltes sont dplaces il est ncessaire de garder quelques blocs libres en permanence pour cette gestion

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

44 / 51

Limitations de JFFS/JFFS2

Les programmes sont copis en RAM avant dtre excuts (pas de XIP eXecute In Place) ; XIP et compression sont des facilits incompatibles Lappel systme mmap() passe par un intermdiaire en RAM pour la mme raison La dtection et gestion des erreurs est primitive (pas de correction, uniquement une signalisation des mauvais blocs)

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

45 / 51

Intrt de JFFS sur iPaq

Sous PocketPC (Windows CE), la mmoire ash (32Mo) sert de stockage pour le systme dexploitation. La RAM est partage entre le stockage des donnes (et applications) de lutilisateur et la mmoire ncessaire pour lexcution des programmes. Sous Linux (distribution Familiar), la mmoire ash sert de stockage du systme dexploitation et des donnes utilisateurs ; ces donnes survivent une perte de courant, contrairement aux informations stockes uniquement en RAM.

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

46 / 51

Watchdog

But : dtecter une erreur logique dans le programme Principe : si on ne se manifeste pas pendant un certain temps auprs du watchdog, il rinitialise le processeur Contraintes :
il faut tre sr que le programme avance il faut se manifester le moins possible cela oblige rchir au timing des direntes parties du programme

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

47 / 51

Watchdog logiciel et matriel

Le meilleur watchdog est matriel : il se dclenche toujours il ne peut pas tre dsactiv par le logiciel mais il nest pas souple (pas de supervision) Un watchdog logiciel peut tre utile : dtection de surcharge dun noyau multi-tches gestion de supervision

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

48 / 51

Gestion de lnergie

Un systme embarqu doit grer lnergie pour tre conomique :


moins de consommation alimentation avec un courant plus faible

pour tre citoyen :


moins de consommation de ressources non renouvelables utilisation de piles plus propres recyclage des dchets moins frquent

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

49 / 51

Mode veille

La plupart des composants disposent dun mode veille :


les fonctions vitales sont endormies certains vnements (interruptions, timer) peuvent les rveiller parfois, une deuxime horloge est ncessaire pour assurer la veille du composant

Mais la veille se fait avant tout en vitant les gadgets : leds, achage de lheure, etc.

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

50 / 51

Varit des consommations

La carte SPIF, quipant les robots du dpartement INFRES de lENST : consomme 4W vide au repos consomme 7W pleine puissance consomme 15W pleine puissance en bloquant les moteurs

Samuel Tardieu (ENST)

Systmes dexploitation embarqus

51 / 51