Sie sind auf Seite 1von 50
Systèmes d’exploitation embarqués Brique ROSE
Systèmes d’exploitation embarqués
Brique ROSE

Samuel Tardieu

sam@rfc1149.net

École Nationale Supérieure des Télécommunications

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

1 / 51
1
/
51

Système d’exploitation

Un système d’exploitation :

fait le lien entre le logiciel (application) et le matérielSystème d’exploitation Un système d’exploitation : abstrait certaines caractéristiques du matériel fournit des

abstrait certaines caractéristiques du matérielfait le lien entre le logiciel (application) et le matériel fournit des services communs (accès aux

fournit des services communs (accès aux ressources, synchronisation, gestion de fichier)matériel abstrait certaines caractéristiques du matériel offre des possibilités de tests et de traces Samuel

offre des possibilités de tests et de tracesaux ressources, synchronisation, gestion de fichier) Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

2 / 51
2
/
51

Système embarqué

Généralement, un système embarqué :

dispose de ressources limitéesSystème embarqué Généralement, un système embarqué : ne possède pas toujours de système de fichiers doit

ne possède pas toujours de système de fichiersun système embarqué : dispose de ressources limitées doit être le moins cher possible ne doit

doit être le moins cher possiblelimitées ne possède pas toujours de système de fichiers ne doit pas consommer d’énergie inutilement Samuel

ne doit pas consommer d’énergie inutilementde système de fichiers doit être le moins cher possible Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

3 / 51
3
/
51

Approche minimaliste

Dans une approche minimaliste, le système d’exploitation :

initialise le matérielune approche minimaliste, le système d’exploitation : donne la main à l’application Le système

donne la main à l’application Le système d’exploitation peut également être réduit à néant (carte nue).le système d’exploitation : initialise le matériel Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

4 / 51
4
/
51

Approche maximaliste

Dans une approche maximaliste, le système d’exploitation :

fournit tous les services d’un ordinateur de bureau

fournit des machines virtuelles fournit des bibliothèques graphiques Exemple : le projet SPIF de l’ENST (Linux)

graphiques Exemple : le projet SPIF de l’ENST (Linux) Samuel Tardieu (ENST) Systèmes d’exploitation embarqués
graphiques Exemple : le projet SPIF de l’ENST (Linux) Samuel Tardieu (ENST) Systèmes d’exploitation embarqués
graphiques Exemple : le projet SPIF de l’ENST (Linux) Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

5 / 51
5
/
51

Approche intermédiaire

En général, le système d’exploitation fournit les services :

de gestion de tempsle système d’exploitation fournit les services : d’accès au réseau de gestion de la mémoire Samuel

d’accès au réseaud’exploitation fournit les services : de gestion de temps de gestion de la mémoire Samuel Tardieu

de gestion de la mémoireles services : de gestion de temps d’accès au réseau Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

6 / 51
6
/
51

Compromis

Des compromis doivent être faits :

mono-programme / multi-programmeCompromis Des compromis doivent être faits : mono-thread / multi-thread allocations statiques / allocation dynamique

mono-thread / multi-threaddoivent être faits : mono-programme / multi-programme allocations statiques / allocation dynamique réservation

allocations statiques / allocation dynamiquemono-programme / multi-programme mono-thread / multi-thread réservation des ressources / allocation des ressources à

réservation des ressources / allocation des ressources à la demande/ multi-thread allocations statiques / allocation dynamique Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

7 / 51
7
/
51

Exemple : PalmOS

gestion de la mémoire simplifiéeExemple : PalmOS primitives de gestion de bases de données et de l’écran bibliothèques mathématiques applications

primitives de gestion de bases de données et de l’écranExemple : PalmOS gestion de la mémoire simplifiée bibliothèques mathématiques applications minimalistes (philosophie

bibliothèques mathématiquesprimitives de gestion de bases de données et de l’écran applications minimalistes (philosophie du Palm)

applications minimalistes (philosophie du Palm)de données et de l’écran bibliothèques mathématiques mono-application et mono-thread ne nécessite pas beaucoup

mono-application et mono-threadapplications minimalistes (philosophie du Palm) ne nécessite pas beaucoup de puissance (m68k 20MHz, ARM à

ne nécessite pas beaucoup de puissance (m68k 20MHz, ARM à 200MHz en émulation m68k)(philosophie du Palm) mono-application et mono-thread Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

8 / 51
8
/
51

Exemple : Windows CE

tous les services d’un WindowsExemple : Windows CE fiabilité d’un Windows (mauvaise) facilité de portage des applications pas de gestion

fiabilité d’un Windows (mauvaise)Exemple : Windows CE tous les services d’un Windows facilité de portage des applications pas de

facilité de portage des applicationsd’un Windows fiabilité d’un Windows (mauvaise) pas de gestion du temps-réel nécessite un processeur très

pas de gestion du temps-réelWindows (mauvaise) facilité de portage des applications nécessite un processeur très puissant (ARM 400MHz) Samuel

nécessite un processeur très puissant (ARM 400MHz)de portage des applications pas de gestion du temps-réel Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

9 / 51
9
/
51

Exemple : Symbian OS

orienté téléphonie téléphonie

gestion des contactsExemple : Symbian OS orienté téléphonie gestion de réseaux divers (SMS, BlueTooth, GSM, TCP/IP) gestion multimedia

gestion de réseaux divers (SMS, BlueTooth, GSM, TCP/IP): Symbian OS orienté téléphonie gestion des contacts gestion multimedia synchronisation sur réseau lent over

gestion multimediagestion de réseaux divers (SMS, BlueTooth, GSM, TCP/IP) synchronisation sur réseau lent over the air supporte

synchronisation sur réseau lent over the air over the air

supporte Java (JavaPhone)multimedia synchronisation sur réseau lent over the air nécessite moins de ressources que Windows CE Samuel

nécessite moins de ressources que Windows CEsur réseau lent over the air supporte Java (JavaPhone) Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

10 / 51
10
/
51

Exemple : Linux

tous les services de LinuxExemple : Linux fiabilité de Linux (bonne) multi-applications très gourmand en ressources logiciel libre nécessite un

fiabilité de Linux (bonne)Exemple : Linux tous les services de Linux multi-applications très gourmand en ressources logiciel libre nécessite

multi-applicationstous les services de Linux fiabilité de Linux (bonne) très gourmand en ressources logiciel libre nécessite

très gourmand en ressourcesde Linux fiabilité de Linux (bonne) multi-applications logiciel libre nécessite un processeur puissant (PowerPC

logiciel libre(bonne) multi-applications très gourmand en ressources nécessite un processeur puissant (PowerPC 50MHz) Samuel

nécessite un processeur puissant (PowerPC 50MHz)très gourmand en ressources logiciel libre Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

11 / 51
11
/
51

Exemple : RTEMS et eCos

exécutif configurable pour ne garder que ce qui est nécessaireExemple : RTEMS et eCos services de synchronisation gestion du temps entrées/sorties gestion du réseau logiciel

services de synchronisationconfigurable pour ne garder que ce qui est nécessaire gestion du temps entrées/sorties gestion du réseau

gestion du tempsque ce qui est nécessaire services de synchronisation entrées/sorties gestion du réseau logiciel libre ne

entrées/sortiesest nécessaire services de synchronisation gestion du temps gestion du réseau logiciel libre ne nécessite pas

gestion du réseaude synchronisation gestion du temps entrées/sorties logiciel libre ne nécessite pas beaucoup de puissance (m68k

logiciel libregestion du temps entrées/sorties gestion du réseau ne nécessite pas beaucoup de puissance (m68k à 33MHz)

ne nécessite pas beaucoup de puissance (m68k à 33MHz)du temps entrées/sorties gestion du réseau logiciel libre Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

12 / 51
12
/
51

Exemple : Forth

langage de programmation et système à lui tout seulExemple : Forth mono-application mais multi-threads en mode coopératif permet le test interactif ne nécessite pas

mono-application mais multi-threads en mode coopératifForth langage de programmation et système à lui tout seul permet le test interactif ne nécessite

permet le test interactifseul mono-application mais multi-threads en mode coopératif ne nécessite pas beaucoup de ressources (PIC 16f876, 2k

ne nécessite pas beaucoup de ressources (PIC 16f876, 2k de programme, 80 octets de RAM)multi-threads en mode coopératif permet le test interactif Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

13 / 51
13
/
51

Caractéristiques

Avant de choisir son système, il faut définir :

le prix de revient maximum de chaque unitéAvant de choisir son système, il faut définir : le temps de réponse aux actions de

le temps de réponse aux actions de l’utilisateurfaut définir : le prix de revient maximum de chaque unité la capacité totale de traitement

la capacité totale de traitementunité le temps de réponse aux actions de l’utilisateur la disponibilité et la possibilité de le

la disponibilité et la possibilité de le modifieractions de l’utilisateur la capacité totale de traitement le support disponible et la fiabilité du fournisseur

le support disponible et la fiabilité du fournisseurla disponibilité et la possibilité de le modifier Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

14 / 51
14
/
51

Rappels de compilation croisée

Définitions :

L’hôte est la machine sur laquelle on compile hôte est la machine sur laquelle on compile

La cible est la machine pour laquelle on compile Différences possibles : cible est la machine pour laquelle on compile Différences possibles :

Type de microprocesseur (big/little endian ) big/little endian)

Taille des mots (représentation des données de la cible)possibles : Type de microprocesseur ( big/little endian ) Système d’exploitation (conventions d’appel) Samuel

Système d’exploitation (conventions d’appel)) Taille des mots (représentation des données de la cible) Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

15 / 51
15
/
51

Moniteur

Le moniteur :

configure la cible (mémoire, ports de communication)Moniteur Le moniteur : permet de dialoguer et de recevoir des commandes autorise le diagnostic permet

permet de dialoguer et de recevoir des commandes: configure la cible (mémoire, ports de communication) autorise le diagnostic permet de charger un autre

autorise le diagnosticpermet de dialoguer et de recevoir des commandes permet de charger un autre programme permet de

permet de charger un autre programmeet de recevoir des commandes autorise le diagnostic permet de reprogrammer la cible (flash) Samuel Tardieu

permet de reprogrammer la cible (flash)autorise le diagnostic permet de charger un autre programme Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

16 / 51
16
/
51

Exemples de moniteurs

OpenFirmware : Sun Sparc et Apple Macintosh récentsExemples de moniteurs TinyBoot : version réduite d’OpenFirmware PPCboot : plate-forme PowerPC embarquée Différents

TinyBoot : version réduite d’OpenFirmwareOpenFirmware : Sun Sparc et Apple Macintosh récents PPCboot : plate-forme PowerPC embarquée Différents

PPCboot : plate-forme PowerPC embarquéerécents TinyBoot : version réduite d’OpenFirmware Différents bootloaders : permettent uniquement de

Différents bootloaders : permettent uniquement de charger du code bootloaders : permettent uniquement de charger du code

Pour la programmation ombilicale, petits moniteurs maison maison

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

17 / 51
17
/
51

OpenFirmware

Standard IEEE 1275OpenFirmware Interpréteur de bytecode basé sur Forth (fcode tokens) Indépendant de l’architecture (Sparc et

Interpréteur de bytecode basé sur Forth (fcode tokens) bytecode basé sur Forth (fcode tokens)

Indépendant de l’architecture (Sparc et Macintosh)Interpréteur de bytecode basé sur Forth (fcode tokens) Mots standards pour examiner le bus Du bytecode

Mots standards pour examiner le busIndépendant de l’architecture (Sparc et Macintosh) Du bytecode est chargé depuis les cartes d’extension

Du bytecode est chargé depuis les cartes d’extension pour enrichir le système bytecode est chargé depuis les cartes d’extension pour enrichir le système

En développement pour PC (OpenBios)depuis les cartes d’extension pour enrichir le système Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

18 / 51
18
/
51

Exemple OpenFirmware

Type

ok

screen /pci@1f,0/pci@1,1/SUNW,m64B@2 net /pci@1f,0/pci@1,1/network@1,1

’go’

to

resume

devalias

] [

ok

dev

screen

ok

dimensions

.s

1280

1024

ok

dev

net

ok

watch-net

Internal

loopback

test

--

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

20 / 51
20
/
51

Transfert de contrôle

Le moniteur peut également

charger un autre programme (noyau)Transfert de contrôle Le moniteur peut également passer des structures de données et des méthodes au

passer des structures de données et des méthodes au noyau (factorisation des fonctionalités)moniteur peut également charger un autre programme (noyau) reprendre la main si le noyau quitte reprendre

reprendre la main si le noyau quittedes méthodes au noyau (factorisation des fonctionalités) reprendre la main sur interruption (debug) reprendre la main

reprendre la main sur interruption (debug)des fonctionalités) reprendre la main si le noyau quitte reprendre la main en cas de blocage

reprendre la main en cas de blocage de la machinele noyau quitte reprendre la main sur interruption (debug) Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

21 / 51
21
/
51

Méthodes de communication

Un moniteur utilise

un moyen de communication standardMéthodes de communication Un moniteur utilise liaison série, clavier cela monopolise un périphérique qu’on ne peut

liaison série, clavierUn moniteur utilise un moyen de communication standard cela monopolise un périphérique qu’on ne peut plus

cela monopolise un périphérique qu’on ne peut plus testerun moyen de communication standard liaison série, clavier ou un moyen de communication ad-hoc protocole 1

ou un moyen de communication ad-hoc ad-hoc

protocole 1 fil 1 fil

cela libère les autres périphériquesou un moyen de communication ad-hoc protocole 1 fil Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

22 / 51
22
/
51

Configuration d’un port

La configuration d’un système de communication dans un moniteur est différente d’avec un OS :

les spécificités matérielles ne sont pas masquéesdans un moniteur est différente d’avec un OS : la manipulation se fait port par port

la manipulation se fait port par port et parfois bit par bitOS : les spécificités matérielles ne sont pas masquées On échappe rarement à la lecture de

On échappe rarement à la lecture de la datasheet du système utilisé.

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

23 / 51
23
/
51

Exemple : RS232sur PIC 16f876

Les différentes étapes sont :

sélectionner la vitesse du port B = ou N = 64 B = ou N = 64

activer le mode asynchronesont : sélectionner la vitesse du port B = ou N = 64 sélectionner le format

sélectionner le format (8 ou 9 bits)du port B = ou N = 64 activer le mode asynchrone configurer les interruptions pour

configurer les interruptions pour l’émissionle mode asynchrone sélectionner le format (8 ou 9 bits) N ( X + 1 )

N(X +1)

F

osc

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

configurer les interruptions pour la réception+ 1 ) F osc ( X ∈ [ 0 , 255 ] ) et le

configurer les interruptions pour les périphériquesN = 16 configurer les interruptions pour la réception configurer les interruptions globales Samuel Tardieu (ENST)

configurer les interruptions globalesconfigurer les interruptions pour les périphériques Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

24 / 51
24
/
51

Protocole 1 fil

En réalité, 1 fil plus la masseProtocole 1 fil Protocole half-duplex Utilisation de polling : le maître demande régulièrement à l’esclave

Protocole half-duplex half-duplex

Utilisation de polling : le maître demande régulièrement à l’esclave s’il a quelque chose à transmettre polling : le maître demande régulièrement à l’esclave s’il a quelque chose à transmettre

Nécessité de synchroniser (statiquement ou dynamiquement) les horlogesà l’esclave s’il a quelque chose à transmettre Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

25 / 51
25
/
51

Exemple de protocole 1 fil

Le maître envoie un caractère régulièrement, ou ? pour rien ? pour rien

Le maître envoie un : suivi d’un : ou ? pour transmettre ces deux derniers (échappement) : suivi d’un : ou ? pour transmettre ces deux derniers (échappement)

Après chaque caractère reçu, l’esclave envoie un caractère ou ? s’il n’a rien à envoyer ? s’il n’a rien à envoyer

L’esclave utilise les mêmes séquences d’échappementenvoie un caractère ou ? s’il n’a rien à envoyer Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

26 / 51
26
/
51

Protocole RS232

Protocole full-duplex (TX pour la transmission et RX pour la réception) full-duplex (TX pour la transmission et RX pour la réception)

L’état au repos de la ligne est -12V(TX pour la transmission et RX pour la réception) Un bit de start (ligne à +12V)

Un bit de start (ligne à +12V) permet de détecter le début de la transmission bit de start (ligne à +12V) permet de détecter le début de la transmission

Chaque bit est échantillonné plusieurs fois (3 ou 5) pour vérifier la bonne synchronisation des horlogesà +12V) permet de détecter le début de la transmission Un bit de stop (ligne à

Un bit de stop (ligne à -12V) permet de vérifier la cohérence des vitesses (avant le bit de stop (ligne à -12V) permet de vérifier la cohérence des vitesses (avant le prochain bit de start – framing )

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

27 / 51
27
/
51

Exemple de transmission RS232

Transmission du caractère “Z” de code ASCII 90, soit 5a en hexadécimal ou 01011010 en binaireExemple de transmission RS232 Transmission à f bits par secondes (par exemple, f = 9600bps) 1

Transmission à f bits par secondes (par exemple, f = 9600bps) 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)à f bits par secondes (par exemple, f = 9600bps) f Vitesse effective : 10 octets

f Vitesse effective : 10 octets par seconde (surcoût de 25%) 1 t = stop
f
Vitesse effective :
10 octets par seconde (surcoût de 25%)
1
t
=
stop
f
+12V
0
1
0
1
1
0
1
0
1
1
0
0V
-12V
start
1er octet (8 bits de données)
start
2nd octet
Samuel Tardieu
(ENST)
Systèmes d’exploitation embarqués
28
/
51

Programmation des composants

Certains composants sont programmables (une ou plusieurs fois) :

composants sont programmables (une ou plusieurs fois) : en utilisant un programmateur ou en utilisant la

en utilisant un programmateur

ou en utilisant la programmation in-situ avec ou sans tension d’alimentation spéciale parfois depuis du code qu’ils exécutent eux-mêmes La dernière classe est la plus intéressante.

eux-mêmes La dernière classe est la plus intéressante. Samuel Tardieu (ENST) Systèmes d’exploitation embarqués
eux-mêmes La dernière classe est la plus intéressante. Samuel Tardieu (ENST) Systèmes d’exploitation embarqués
eux-mêmes La dernière classe est la plus intéressante. Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

29 / 51
29
/
51

Avantage de la reprogrammation

Il est possible d’installer un moniteur sur le composantAvantage de la reprogrammation Aucun appareillage n’est nécessaire pour le reprogrammer : il suffit de disposer

Aucun appareillage n’est nécessaire pour le reprogrammer : il suffit de disposer d’un moniteurIl est possible d’installer un moniteur sur le composant Il est possible de tester facilement des

Il est possible de tester facilement des changementspour le reprogrammer : il suffit de disposer d’un moniteur Il est possible de mettre à

Il est possible de mettre à jour des appareils en production s’ils ont été prévus pour celaIl est possible de tester facilement des changements Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

30 / 51
30
/
51

Moniteur complet minimaliste

Un moniteur complet minimaliste pourrait

accepter un entier et le placer sur une pilecomplet minimaliste Un moniteur complet minimaliste pourrait écrire le deuxième entier à partir du sommet à

écrire le deuxième entier à partir du sommet à l’adresse se trouvant sur le sommetpourrait accepter un entier et le placer sur une pile sauter à l’adresse se trouvant sur

sauter à l’adresse se trouvant sur le sommetà partir du sommet à l’adresse se trouvant sur le sommet Un tel moniteur peut prendre

Un tel moniteur peut

prendre le contrôle au bootl’adresse se trouvant sur le sommet Un tel moniteur peut transférer le contrôle à un programme

transférer le contrôle à un programme si une condition est vraie (bouclage I/O)le sommet Un tel moniteur peut prendre le contrôle au boot Samuel Tardieu (ENST) Systèmes d’exploitation

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

31 / 51
31
/
51

Contrôle du moniteur

Problème

Problème

Comment faire lorsqu’on ne dispose pas d’entrée disponible à dédier au moniteur ?

 
 
 
Solution On peut utiliser une sortie comme entrée en la testant au moment du démarrage.
Solution
On peut utiliser une sortie comme entrée en la testant au moment du
démarrage.
On choisit bien entendu R2 >> R1.
Samuel Tardieu
(ENST)
Systèmes d’exploitation embarqués
32
/
51

Chargement d’un noyau

Un noyau peut être chargé :

depuis un support de masse (disque dur, ROM, EEPROM, flash)Chargement d’un noyau Un noyau peut être chargé : depuis une laison avec un système extérieur

depuis une laison avec un système extérieur (série, ethernet, WiFi)depuis un support de masse (disque dur, ROM, EEPROM, flash) Il peut être compressé ou décompressé,

Il peut être compressé ou décompressé, chiffré, signé, etc. Le moniteur doit savoir accéder à ces supports.

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

33 / 51
33
/
51

Anatomie d’une application

Une application (par exemple un noyau) est composée de plusieurs sections :

(exemple de ELF)

.text : le code exécutable ; il sera logé à un endroit égal ou différent de : le code exécutable ; il sera logé à un endroit égal ou différent de celui où il se trouve stocké, en mémoire vive ou morte

.data : les données initialisées ; elles seront copiées en mémoire vive avant de lancer le : les données initialisées ; elles seront copiées en mémoire vive avant de lancer le sous-programme principal

.bss : les données non initialisées ; une zone de mémoire vive de la bonne taille : les données non initialisées ; une zone de mémoire vive de la bonne taille sera initialisée à zéro

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

34 / 51
34
/
51

Exemple : PC sous FreeBSD

Le boot de FreeBSD se fait en différentes étapes :

le moniteur du PC (BIOS) charge le premier secteur (boot0 ) du périphérique de démarrage et l’exécute boot0) du périphérique de démarrage et l’exécute

boot0 charge le premier secteur de la partition de démarrage choisie et l’exécute ( boot1 ) charge le premier secteur de la partition de démarrage choisie et l’exécute (boot1)

boot1 extrait boot2 de la partition de démarrage (à un endroit fixe) et l’exécute extrait boot2 de la partition de démarrage (à un endroit fixe) et l’exécute

boot2 charge et exécute /boot/loader (moniteur contenant un interpréteur de commande Forth) ou directement un noyau charge et exécute /boot/loader (moniteur contenant un interpréteur de commande Forth) ou directement un noyau

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

35 / 51
35
/
51

Chargement à travers le réseau

Le chargement par dessus TCP/IP implique :

le réseau Le chargement par dessus TCP/IP implique : l’obtention d’une adresse IP la communication avec

l’obtention d’une adresse IP

la communication avec un serveur de fichiers la récupération d’un noyau adéquat Différents protocoles interviennent.

d’un noyau adéquat Différents protocoles interviennent. Samuel Tardieu (ENST) Systèmes d’exploitation embarqués
d’un noyau adéquat Différents protocoles interviennent. Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

36 / 51
36
/
51

Obtention d’une adresse IP

L’adresse IP :

peut être obtenue par bootp, DHCP, bootparamObtention d’une adresse IP L’adresse IP : est accompagnée de paramètres supplémentaires (masque de sous-réseau,

est accompagnée de paramètres supplémentaires (masque de sous-réseau, passerelle, serveurs de nom, domaine courant)IP : peut être obtenue par bootp, DHCP, bootparam peut être accompagnée d’informations de boot (serveur,

peut être accompagnée d’informations de boot (serveur, protocole, paramètres)sous-réseau, passerelle, serveurs de nom, domaine courant) Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

37 / 51
37
/
51

Obtention d’un noyau

Le noyau peut être obtenu par

TFTP : protocole trivial basé sur UDP, peu sécurisé : protocole trivial basé sur UDP, peu sécurisé

NFS : montage d’un système de fichiers sur lequel se trouve le noyau : montage d’un système de fichiers sur lequel se trouve le noyau

FTP, samba : tout système peut être a priori utilisé, ce n’est qu’une convention entre le système : tout système peut être a priori utilisé, ce n’est qu’une convention entre le système embarqué et le serveur

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

38 / 51
38
/
51

Compression de l’application

L’application peut être accessible par le moniteur à un format compressé :

le moniteur doit savoir la décompresserêtre accessible par le moniteur à un format compressé : l’encombrement statique du moniteur est augmenté

l’encombrement statique du moniteur est augmentéformat compressé : le moniteur doit savoir la décompresser la mémoire nécessaire pour la décompression doit

la mémoire nécessaire pour la décompression doit être prise en compte :l’encombrement statique du moniteur est augmenté environ 32Ko pour le format gzip environ 900Ko pour le

environ 32Ko pour le format gzippour la décompression doit être prise en compte : environ 900Ko pour le format bzip2 Samuel

environ 900Ko pour le format bzip2être prise en compte : environ 32Ko pour le format gzip Samuel Tardieu (ENST) Systèmes d’exploitation

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

39 / 51
39
/
51

Systèmes sans stockage

Les systèmes sans stockage sont

soit autonomesSystèmes sans stockage Les systèmes sans stockage sont soit dépendants de ressources extérieures Sur un système

soit dépendants de ressources extérieuresstockage Les systèmes sans stockage sont soit autonomes Sur un système Unix, les accès à certaines

Sur un système Unix, les accès à certaines partitions (voire toutes) et le swap peuvent avoir lieu par dessus NFS.

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

40 / 51
40
/
51

Stockage en mémoire flash

La mémoire flash connaît les mêmes contraintes (en plus prononcées) qu’un disque dur :

l’écriture se fait par bloc (secteur sur un disque) entiercontraintes (en plus prononcées) qu’un disque dur : plus on écrit au même endroit, plus il

plus on écrit au même endroit, plus il s’usese fait par bloc (secteur sur un disque) entier Par contre : la mémoire flash coûte

Par contre :

la mémoire flash coûte beaucoup plus cher et est beaucoup plus fragileon écrit au même endroit, plus il s’use Par contre : la mémoire flash consomme beaucoup

la mémoire flash consomme beaucoup moins de courant et nécessite moins de placecoûte beaucoup plus cher et est beaucoup plus fragile Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

41 / 51
41
/
51

Gestion de la mémoire flash

Propriétés souhaitables d’un système de gestion de fichiers en mémoire flash :

répartition homogène des écritures (wear levelling ) wear levelling )

cohérence du système de fichier, même en cas de coupure de courant en plein milieu d’une opération: répartition homogène des écritures ( wear levelling ) souplesse d’un système de fichiers traditionnel Samuel

souplesse d’un système de fichiers traditionnelcas de coupure de courant en plein milieu d’une opération Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

42 / 51
42
/
51

Solutions disponibles

systèmes de fichiers basiques (pas de wear levelling , pas sûrs) wear levelling, pas sûrs)

standards PCMCIA FTL (Flash Translation Layer ) et NFTL (brevetés, donc inutilisables) Flash Translation Layer ) et NFTL (brevetés, donc inutilisables)

système de fichiers JFFS (Journalling Flash File System ) et JFFS2 (Linux, eCos en cours) Journalling Flash File System) et JFFS2 (Linux, eCos en cours)

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

43 / 51
43
/
51

JFFS/JFSS2

les données compressées sont écrites séquentiellement dans la mémoire flash (journalling ) journalling )

la mémoire flash est entièrement analysée au moment du montageséquentiellement dans la mémoire flash ( journalling ) seules les méta-données qui ne peuvent être

seules les méta-données qui ne peuvent être reconstituées rapidement sont gardées en mémoireflash est entièrement analysée au moment du montage pour pouvoir libérer la totalité d’un bloc, les

pour pouvoir libérer la totalité d’un bloc, les informations non obsolètes sont déplacéesêtre reconstituées rapidement sont gardées en mémoire il est nécessaire de garder quelques blocs libres en

il est nécessaire de garder quelques blocs libres en permanence pour cette gestionbloc, les informations non obsolètes sont déplacées Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

44 / 51
44
/
51

Limitations de JFFS/JFFS2

Les programmes sont copiés en RAM avant d’être exécutés (pas de XIP eXecute In Place ) ; XIP et compression sont des facilités incompatibles eXecute In Place) ; XIP et compression sont des facilités incompatibles

L’appel système mmap() passe par un intermédiaire en RAM pour la même raison mmap() passe par un intermédiaire en RAM pour la même raison

La détection et gestion des erreurs est primitive (pas de correction, uniquement une signalisation des mauvais blocs)passe par un intermédiaire en RAM pour la même raison Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

45 / 51
45
/
51

Intérêt de JFFS sur iPaq

Sous PocketPC (Windows CE), la mémoire flash (32Mo) sert de stockage pour le système d’exploitation. La RAM est partagée entre le stockage des données (et applications) de l’utilisateur et la mémoire nécessaire pour l’exécution des programmes.Intérêt de JFFS sur iPaq Sous Linux (distribution Familiar), la mémoire flash sert de stockage du

Sous Linux (distribution Familiar), la mémoire flash sert de stockage du système d’exploitation et des données utilisateurs ; ces données survivent à une perte de courant, contrairement aux informations stockées uniquement en RAM.la mémoire nécessaire pour l’exécution des programmes. Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

46 / 51
46
/
51

Watchdog

But : détecter une erreur logique dans le programmeWatchdog Principe : si on ne se manifeste pas pendant un certain temps auprès du watchdog,

Principe : si on ne se manifeste pas pendant un certain temps auprès du watchdog, il réinitialise le processeurWatchdog But : détecter une erreur logique dans le programme Contraintes : il faut être sûr

Contraintes :temps auprès du watchdog, il réinitialise le processeur il faut être sûr que le programme avance

il faut être sûr que le programme avancedu watchdog, il réinitialise le processeur Contraintes : il faut se manifester le moins possible cela

il faut se manifester le moins possibleContraintes : il faut être sûr que le programme avance cela oblige à réfléchir au timing

cela oblige à réfléchir au timing des différentes parties du programme timing des différentes parties du programme

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

47 / 51
47
/
51

Watchdog logiciel et matériel

Le meilleur watchdog est matériel :

il se déclenche toujours

il se déclenche toujours

il ne peut pas être désactivé par le logiciel

il ne peut pas être désactivé par le logiciel

mais il n’est pas souple (pas de supervision) Un watchdog logiciel peut être utile :il ne peut pas être désactivé par le logiciel détection de surcharge d’un noyau multi-tâches

détection de surcharge d’un noyau multi-tâches

détection de surcharge d’un noyau multi-tâches

gestion de supervision

gestion de supervision

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

48 / 51
48
/
51

Gestion de l’énergie

Un système embarqué doit gérer l’énergie

pour être économique :l’énergie Un système embarqué doit gérer l’énergie moins de consommation alimentation avec un courant plus

moins de consommationembarqué doit gérer l’énergie pour être économique : alimentation avec un courant plus faible pour être

alimentation avec un courant plus faiblel’énergie pour être économique : moins de consommation pour être citoyen : moins de consommation de

pour être citoyen :de consommation alimentation avec un courant plus faible moins de consommation de ressources non renouvelables

moins de consommation de ressources non renouvelablesavec un courant plus faible pour être citoyen : utilisation de piles plus propres recyclage des

utilisation de piles plus propres: moins de consommation de ressources non renouvelables recyclage des déchets moins fréquent Samuel Tardieu (ENST)

recyclage des déchets moins fréquentnon renouvelables utilisation de piles plus propres Samuel Tardieu (ENST) Systèmes d’exploitation embarqués

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

49 / 51
49
/
51

Mode veille

La plupart des composants disposent d’un mode veille :

les fonctions vitales sont endormiesLa plupart des composants disposent d’un mode veille : certains événements (interruptions, timer) peuvent les

certains événements (interruptions, timer) peuvent les réveillerd’un mode veille : les fonctions vitales sont endormies parfois, une deuxième horloge est nécessaire pour

parfois, une deuxième horloge est nécessaire pour assurer la veille du composantévénements (interruptions, timer) peuvent les réveiller Mais la veille se fait avant tout en évitant les

Mais la veille se fait avant tout en évitant les gadgets : leds, affichage de l’heure, etc.

Samuel Tardieu

(ENST)

Systèmes d’exploitation embarqués

50 / 51
50
/
51

Variété des consommations

La carte SPIF, équipant les robots du département INFRES de l’ENST :

consomme 4W à vide au reposéquipant les robots du département INFRES de l’ENST : consomme 7W à pleine puissance consomme 15W

consomme 7W à pleine puissanceINFRES de l’ENST : consomme 4W à vide au repos consomme 15W à pleine puissance en

consomme 15W à pleine puissance en bloquant les moteursconsomme 4W à vide au repos consomme 7W à pleine puissance Samuel Tardieu (ENST) Systèmes d’exploitation

Samuel Tardieu

(ENST)

15W à pleine puissance en bloquant les moteurs Samuel Tardieu (ENST) Systèmes d’exploitation embarqués 51 /

Systèmes d’exploitation embarqués

51 / 51
51
/
51