Syst `emes temps r ´eel et syst `emes embarqu ´es
Syst `emes embarqu ´es
Jacques Gangloff, Lo¨ıc Cuvillon
Ecole Nationale Sup ´erieure de Physique de Strasbourg
8 janvier 2008
Plan
Plan
1 Introduction Plan du cours D ´efinition
Concepts de base Statistiques / tendances Exemples d’utilisation
Avantages/Inconv ´enients de linux
2 Le mat ´eriel Le processeur
Le stockage non volatile
3 Programmation d’un syst `eme embarqu ´e La compilation crois ´ee
Emulation
Introduction
Plan
1 Introduction Plan du cours D ´efinition
Concepts de base Statistiques / tendances Exemples d’utilisation
Avantages/Inconv ´enients de linux
2 Le mat ´eriel Le processeur
Le stockage non volatile
3 Programmation d’un syst `eme embarqu ´e La compilation crois ´ee
Emulation
Introduction Plan du cours
Introduction
D ´efinition
Concepts de base Statistiques / tendances Exemples d’applications
Avantages / inconv ´enients de Linux R ´ef ´erences
Le mat ´eriel
Le processeur
La m ´emoire non volatile
Introduction Plan du cours
Programmation d’un syst `eme embarqu ´e
La compilation crois ´ee Emulation
Exemples
Le Zaurus
L’ ´emulateur QEMU Compilation sous ARM
Introduction D ´efinition
D ´efinition
Un syst `eme embarqu ´e (Embedded system en anglais) d ´esigne un mat ´eriel
´electronique comprenant au moins un microprocesseur (ou microcontr ˆoleur) et un logiciel d ´edi ´e `a sa gestion. Exemples de syst `emes embarqu ´es : t ´el ´ephone mobile, navigateur GPS, routeur ethernet, lecteur de DVD, contr ˆoleur d’injection moteur, t ´el ´ecommande, ´electrom ´enager, ...
Introduction Concepts de base
Contraintes
Les syst `emes embarqu ´es ont des contraintes sp ´ecifiques :
◮ Co ˆut tr `es bas
◮ Encombrement r ´eduit
◮ Robustesse aux chocs, `a la temp ´erature, `a l’humidit ´e.
◮ Autonomie donc faible consommation
◮ Bonnes performances
◮ Temps de d ´emarrage court
Caract ´eristiques
Ces contraintes entraˆınent des caract ´eristiques particuli `eres :
◮ Stockage de masse sans entraˆınement m ´ecanique (robustesse aux chocs, consommation, temps de d ´emarrage)
◮ Processeurs basse consommation (consommation, dissipation)
◮ M ´emoire vive et m ´emoire de masse de taille limit ´ee (co ˆut, encombrement, temps de d ´emarrage)
◮ Processeurs avec fonctionnalit ´es minimum (co ˆut, consommation, encombrement)
◮ Processeurs int ´egrant plusieurs fonctions (system on chip ou SoS)
Introduction Statistiques / tendances
Types de processeurs
Historique de l’utilisation des processeurs
Introduction Statistiques / tendances
Types de processeurs
Tendances futures d’utilisation des processeurs
Introduction Statistiques / tendances
Utilisation commerciale de linux
Historique d’utilisation de versions commerciales de linux embarqu ´e
Introduction Statistiques / tendances
Utilisation de linux pour l’embarqu ´e
Linux pour l’embarqu ´e compar ´e `a d’autres OS
Introduction Exemples d’utilisation
Par domaine d’application
PDA / tablettes : Zaurus, Nokia N800, XO, Sony MYLO...
T ´el ´ephones : Motorola, NEC, Panasonic, ...
Robotique : nomadic, barrett robotics, HRP
Audio/Vid ´eo : Lecteur de DVD Dlink, convertisseurs Hauppage, pinnacle audio athenaeum, cam ´era wifi TRENDNET
Modems / routeurs Wifi : pratiquement tous
Autres : PlayStation 1,2,3, GPS TomTom, FreeBox, cam ´era intelligente Sony XCI-SX1
Introduction Avantages/Inconv ´enients de linux
Avantages de linux
Gratuit
Multi-plateformes
Sources disponible (nombreux exemples) Outils de d ´eveloppement performants Adapt ´e aux processeurs sans MMU Robuste
Version temps-r ´eel
Introduction Avantages/Inconv ´enients de linux
Inconv ´enients de linux
Pas de support technique contractuel
Obligation de publier les sources (pas de module binaire dans le noyau) Pas adapt ´e aux syst `emes `a taille m ´emoire tr `es r ´eduite
Introduction Avantages/Inconv ´enients de linux
R ´ef ´erences
http://linuxdevices.com/
http://uuu.enseirb.fr/˜kadionik/embedded/embeddedlinux.html http://free-electrons.com/
http://uuu.enseirb.fr/˜kadionik/formation/
embeddedlinux/introduction.html
Linux magazine hors s´erie No 25, Avril/Mai 2006.
http://en.wikipedia.org/wiki/Flash_memory
Le mat ´eriel
Plan
1 Introduction Plan du cours D ´efinition
Concepts de base Statistiques / tendances Exemples d’utilisation
Avantages/Inconv ´enients de linux
2 Le mat ´eriel Le processeur
Le stockage non volatile
3 Programmation d’un syst `eme embarqu ´e La compilation crois ´ee
Emulation
Le mat ´eriel Le processeur
Processeur embarqu ´e
Les principales architectures : ARM, MIPS, PowerPC, x86
Plusieurs d ´eclinaisons : fr ´equence, fonctionnalit ´es, performances ne sont pas les m ˆemes en fonction des fondeurs.
Une caract ´eristique que partage beaucoup de CPU embarqu ´es est l’absence de MMU (Memory Management Unit)
Le mat ´eriel Le processeur
Fonctionnalit ´es de la MMU
Traduction adressage virtuel-adressage physique : rend possible l’utilisation d’un swap.
Protection mat ´erielle des acc `es m ´emoire : des limites peuvent ˆetre d ´efinies par processus et en cas de violation le processeur g ´en `ere une interruption.
Le mat ´eriel Le processeur
Avantages/Inconv ´enients d’un CPU sans MMU
Avantages
Simplicit ´e du processeur : la surface du processeur est 30% plus r ´eduite.
Plus rapide : le changement de contexte n’inclut pas la protection m ´emoire.
Acc `es complet au mat ´eriel sans restriction Support ´e dans linux 2.6 de mani `ere native.
Le mat ´eriel Le processeur
Inconv ´enients
Pas de protection de la m ´emoire : un processus user peut corrompre tout le syst `eme.
D ´ebugage d ´elicat.
Pas de swap.
Consommation importante de la m ´emoire qui devient fragment ´ee.
Le mat ´eriel Le processeur
uClinux
Version de linux fonctionnant sur CPU sans MMU L ´eger : le noyau 2.6 uClinux fait moins de 300 Ko
XIP : eXecution In Place permet d’ex ´ecuter du code dans la m ´emoire flash. Gain de m ´emoire vive.
Fonctionnalit ´es similaires `a un linux classique : API linux compl `ete, noyau pr ´eemptif, multithreading, grand nombre de processeurs support ´es.
uClibc : version modifi ´ee de libc pour uClinux.
Le mat ´eriel Le stockage non volatile
2 technologies
M ´emoire flash NOR ou NAND.
Principe : pi ´eger des ´electrons dans la grille d’un transistor MOS. Dur ´ee th ´eorique du pi ´egeage : 10 ans.
NOR : rapide en lecture, lent en ´ecriture, permet XIP.
NAND : lecture par bloc, plus endurant que la NOR (environ 10x plus de cycles).
Gestion des erreurs : micro-contr ˆoleur embarqu ´e (SD-card,
MemoryStick, CF-cards) ou g ´er ´e directement par l’OS (jffs2 sous linux).
D ´ebits d’une SD-card en 2007 : environ 30 Mo/s en lecture et 20 Mo/s en
´ecriture.
Programmation d’un syst `eme embarqu ´e
Plan
1 Introduction Plan du cours D ´efinition
Concepts de base Statistiques / tendances Exemples d’utilisation
Avantages/Inconv ´enients de linux
2 Le mat ´eriel Le processeur
Le stockage non volatile
3 Programmation d’un syst `eme embarqu ´e La compilation crois ´ee
Emulation
Programmation d’un syst `eme embarqu ´e La compilation crois ´ee
La compilation crois ´ee
Compilation effectu ´ee sur une machine puissante avec code assembleur g ´en ´er ´e pour le CPU du sust `eme embarqu ´e.
Le code est transmis au syst `eme embarqu ´e par une proc ´edure du
”flashage”.
La compilation est rarement r ´ealis ´ee sur le syst `eme embarqu ´e lui-m ˆeme car il n’inclut pas les outils de d ´eveloppement tr `es consommateurs de place.
L’environnement de compilation crois ´ee s’appelle toolchain.
Programmation d’un syst `eme embarqu ´e Emulation
Emulation
Pour acc ´el ´erer le d ´eveloppement on peut d ´evelopper le syst `eme dans un
´emulateur (Qemu, Bochs, VMWare, ...)
On peut brancher un d ´ebogueur sur l’ ´emulateur On peut figer la machine virtuelle dans un ´etat
On peut d ´emarrer plusieurs machines virtuelles sur la m ˆeme machine physique
Limitation : le mat ´eriel ´emul ´e ne se comporte pas tout `a fait comme le mat ´eriel r ´eel