• Aucun résultat trouvé

Syst`emes temps r´eel et syst`emes embarqu´es Syst`emes embarqu´es

N/A
N/A
Protected

Academic year: 2022

Partager "Syst`emes temps r´eel et syst`emes embarqu´es Syst`emes embarqu´es"

Copied!
25
0
0

Texte intégral

(1)

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

(2)

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

(3)

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

(4)

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

(5)

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

(6)

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, ...

(7)

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)

(8)

Introduction Statistiques / tendances

Types de processeurs

Historique de l’utilisation des processeurs

(9)

Introduction Statistiques / tendances

Types de processeurs

Tendances futures d’utilisation des processeurs

(10)

Introduction Statistiques / tendances

Utilisation commerciale de linux

Historique d’utilisation de versions commerciales de linux embarqu ´e

(11)

Introduction Statistiques / tendances

Utilisation de linux pour l’embarqu ´e

Linux pour l’embarqu ´e compar ´e `a d’autres OS

(12)

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

(13)

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

(14)

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

(15)

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

(16)

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

(17)

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)

(18)

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.

(19)

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.

(20)

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.

(21)

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.

(22)

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.

(23)

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

(24)

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.

(25)

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

Références

Documents relatifs

D´ emontrer la compilation et le chargement du pilote sur PC (il se pourrait qu’il faille d´ efinir une variable d’environnement de fa¸ con appropri´ ee, en fonction de la version

• Alternative au temps r´ eel : le mat´ eriel reconfigurable se charge des op´ erations rapides et d´ echarge le processeur de tˆ aches imm´ ediates (UART, FIFO, ADC du coldfire

• Partant de l’exemple de module avec timer en /dev, impl´ ementer une m´ ethode read qui se d´ ebloque ` a intervalles de temps r´ eguliers (utiliser un mutex). • Proposer

• depuis le CPU (Linux) : pilote noyau pour communiquer avec les p´ eriph´ eriques. • description de la configuration mat´ erielle par le m´ ecanisme des devicetree consult´ e par

Notion de syst` eme embarqu´ e Architecture des processeurs Mat´ eriel v.s logiciel Rappels de C Les microcontrˆ oleurs 8 bits G´ en´ eralit´ es sur les syst` emes num´ eriques

Un ordinateur est, pour sa version la plus simple, un processeur entour´ e de quelques circuits de mise en œuvre (gestion d’horloge, de la r´ einitialisation), une m´ emoire

Si nous pouvons interrompre l’ex´ ecution, ou modifier l’initialisation de i, nous serons en mesure d’afficher le message re- cherch´ e (d´ ebloque)5. Supposons que le vendeur de

timers : expiration d’un timer ou un tick (p ´eriode) d’horloge syst `eme autres p ´eriph ´eriques : touche clavier, clic souris, paquet ethernet,.. Exceptions et Interruptions