Syst`emes temps r´eel et syst`emes embarqu´es
Syst`emes embarqu´es
Jacques Gangloff, Lo¨ıc Cuvillon 15 f´evrier 2008
Plan
Plan
Table des mati`eres
1 Introduction 1
1.1 Plan du cours . . . 1
1.2 D´efinition . . . 2
1.3 Concepts de base . . . 2
1.4 Statistiques / tendances . . . 2
1.5 Exemples d’utilisation . . . 4
1.6 Avantages/Inconv´enients de linux . . . 4
2 Le mat´eriel 5 2.1 Le processeur . . . 5
2.2 Le stockage non volatile . . . 6
3 Programmation d’un syst`eme embarqu´e 6 3.1 La compilation crois´ee . . . 6
3.2 Emulation . . . 6
1 Introduction
1.1 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
Programmation d’un syst`eme embarqu´e – La compilation crois´ee
– Emulation
Exemples – Le Zaurus
– L’´emulateur QEMU – Compilation sous ARM
1.2 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, ...
1.3 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, con- sommation, 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, encombre- ment)
– Processeurs int´egrant plusieurs fonctions (system on chip ou SoS)
1.4 Statistiques / tendances
Types de processeurs
Historique de l’utilisation des processeurs
Types de processeurs
Tendances futures d’utilisation des processeurs
Utilisation commerciale de linux
Historique d’utilisation de versions commerciales de linux embarqu´e
Utilisation de linux pour l’embarqu´e
Linux pour l’embarqu´e compar´e `a d’autres OS
1.5 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
1.6 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
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
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
2 Le mat´eriel
2.1 Le processeur
Processeur embarqu´e
– Les principales architectures : ARM, MIPS, PowerPC, x86
– Plusieurs d´eclinaisons : fr´equences, 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)
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.
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.
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.
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.
2.2 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.
3 Programmation d’un syst`eme embarqu´e
3.1 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.
3.2 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