Vous êtes sur la page 1sur 37

Chapitre0: Introduction aux Systmes Embarqus

Prsent par: Email:

KALLEL Mohamed mohamed.kallel@pivasoftware.com


1

Systmes Embarqus

Exemples de systmes embarqus

Voici quelques exemples de systmes embarqus


Produit lectronique Produit communication

Septembre 2011

Systmes Embarqus

Historique

Apparition en 1971 avec le Intel 4004 premier microprocesseur 4 bits

A lorigine, ce sont des systmes matriels et logiciels intgrs dans des avions militaires ou des missilles. Ensuite dans le civil: avions, voitures, machine laver...!

Septembre 2011

Systmes Embarqus

IMPORTANCE DU MARCHE DE L EMBARQUE

Il a t vendu 108 millions de processeurs x86 pour le march du PC contre 1,4 milliard de processeurs 8 bits pour le march des systmes embarqus (appel aussi march de lembarqu) !

On voit ainsi que 5 % des processeurs vendus sont pour le march du PC. Dans 85 % des cas, Microsoft Windows est utilis.

Septembre 2011

Systmes Embarqus

Dfinition et Introduction

Un systme embarqu peut tre dfini comme un systme lectronique et informatique autonome, qui est ddi une tche bien prcise. Ses ressources disponibles sont gnralement limites. Cette limitation est gnralement d'ordre spatial (taille limite) et nergtique (consommation restreinte). Les systmes embarqus font trs souvent appel l'informatique, et notamment aux systmes temps rel.

Les entres sorties du systme sont spcifiques lapplication

Linterface utilisateur est spcifique : Ecran LCD, voyants, touches, clavier personnalis
5

Septembre 2011

Systmes Embarqus

Dfinition et Introduction

On discerne 4 grandes familles de systmes embarqus:

General computing : application similaire PC mais empaquete diffremment : Console de jeux,

Control systems : Systmes temps rels, contrle de moteurs automobile, contrles dlments de navigation arienne.

Signal processing : commande de moteurs, radar, sonar, analyse video

Communication network : tlphone, transmitions de donnes, wifi, bluetooth.


6

Septembre 2011

Systmes Embarqus

Diffrences avec un ordinateur de bureau

L interface IHM peut tre aussi simple qu' une led qui clignote ou aussi complexe qu' un systme de vision de nuit en Temps Rel. Des circuits numriques FPGA, ASIC ou des circuits analogiques sont utiliss en plus pour augmenter les performances du systme ou sa fiabilit. Le logiciel a une fonctionnalit fixe excuter et est spcifique une application.

Septembre 2011

Systmes Embarqus

CARACTERISTIQUES D UN SYSTME EMBARQUE

Beaucoup de systmes embarqus sont fabriqus en grande srie et doivent avoir des prix extrmement faibles, ce qui induit :
Une faible capacit mmoire. Un petit processeur.

Faible encombrement, faible poids

Faible consommation

Batterie de 24 heures et plus (PC portable : 4 heures).

Septembre 2011

Systmes Embarqus

Systme temps rel


Environnement

Acquisition

Traitement

Restitution et commande

Systme temps rel

Systme en interaction avec un environnement externe variable en fonction du temps. Le systme excute des fonctions spcifiques et limites .Le systme doit tre exact logiquement (sorties en adquation avec les entres),et exact temporellement (contraintes temporelles respectes)
9

Septembre 2011

Systmes Embarqus

Septembre 2011

10

Systmes Embarqus

LES SYSTEMES EMBARQUES ET LE TEMPS REEL

Gnralement, un systme embarqu doit respecter :


des contraintes temporelles fortes (Hard Real Time). on y trouve enfoui un systme d'exploitation ou un noyau Temps Rel (Real Time Operating System, RTOS).

Le Temps Rel est un concept un peu vague. On pourrait le dfinir comme : "Un systme est dit Temps Rel lorsque l'information
aprs acquisition et traitement reste encore pertinente".

Septembre 2011

11

Systmes Embarqus

LES SYSTEMES EMBARQUES ET LE TEMPS REEL

Cela veut dire que dans le cas d'une information arrivant de faon priodique (sous forme dune interruption priodique du systme), les temps d'acquisition et de traitement doivent rester infrieurs la priode de rafrachissement de cette information.

Pour cela, il faut que le noyau ou le systme Temps Rel soit dterministe et premptif pour toujours donner la main durant le prochain tick la tche de plus forte priorit prte.

Septembre 2011

12

Systmes Embarqus

Architecture de processeur de Von Neuman

Le processeur et la mmoires sont connects par bus. La mmoire contient les instructions et les donnes. La vitesse de calcul de lensemble est limite par la mmoire qui est lente.

Septembre 2011

13

Systmes Embarqus

Architecture de processeur Harvard

Les mmoires instruction et donnes sont spares. Le processeur peut accder en mme temps dans les deux plans mmoire.

Septembre 2011

14

Systmes Embarqus

Processeurs

Grande varit darchitecture de processeurs Un processeur nest pas ncessairement programmable On distingue gnralement Les processeurs usage gnraux (GPP) Les processeurs spcifiques certaines applications (Application Specific Processor, ex: DSP) les processeurs ddis une tache (single purpose processor, ASIC)

Septembre 2011

15

Systmes Embarqus

Processeurs usage gnral


Processeur programmable utilis pour de nombreuses applications (aussi appel microprocesseur) Caractristiques Une mmoire pour le programme Un chemin de donn (datapath) gnraliste comprenant un unit arithmtique et logique (ALU) puissante et un gros banc de registre Intrt : Time to market et cot Flexibilit Exemple: Pentium, PowerPC, ARM, MIPS, etc.

Septembre 2011

16

Systmes Embarqus

Processeurs spcifiques

Processeur programmable optimis pour une classe particulire dapplications (ASIP: Application Specific Integrated Processor). Caractristiques: Mmoire de programme Chemin de donne optimis Units fonctionnelles spcifiques Intrt : Flexibilit performances: surface, rapidit, Consommation Exemple: DSP, micro-controleur (processeur 4bits, 8bits).

Septembre 2011

17

Systmes Embarqus

Processeurs ddis

Circuits intgrs destins excuter exactement un programme: coprocesseur, acclrateur matriel ou priphrique. caractristiques: Contient seulement les composants ncessaires lexcution du programme concern en gnral pas de mmoire de programme Intrt : Rapidit Faible consommation Surface Exemple: unit de calcul flottant, contrleur USB, decoder MPEG, etc.

Septembre 2011

18

Systmes Embarqus

Diffrentes familles de processeurs : exemples types

Microcontroleurs :

8051 68HC11 PIC MSP 430

DSP :

TMS 320 C XX ADSP 21 XXX, SHARC 56 XXX

Processeurs :

Intel 80XXX Motorola 68XX ARM


19

Septembre 2011

Systmes Embarqus

Systme dexploitation embarqu


Systme dexploitations pour lembarqu:

Windows CE Wind River VxWorks Symbian Qnx Linux, cLinux, RTLinux . . .

Septembre 2011

20

Systmes Embarqus

Systme dexploitation embarqu

Dfinition : Le systme dexploitation fait le lien entre le logiciel et le matriel. Il permet d'exploiter et daccder aux ressources

Dans une configuration minimum, sil existe, le systme dexploitation initialise le systme et donne la main lapplication. Dans le cas dune application plus importante, le systme dexploitation peut fournir les ressources dun PC. Les principales services fournis sont alors: la gestion du temps entre les tches la gestion de priorit et interruption (temps rel) Possibilit de rajouter des programmes (et de les charger) laccs un rseau la gestion de la mmoire.
21

Septembre 2011

Systmes Embarqus

Systme dexploitation embarqu

Les systmes dexploitation et la protection mmoire

Contraintes spcifiques: petite taille, petite mmoire systme de protection mmoire


Linux: oui --> MMU VxWorks (<=version 5): non--> un systme de dfense

Septembre 2011

22

Systmes Embarqus

Compilation pour Systmes embarqus

Compilation pour systmes embarqus


Compilation croise: chane constructeur du processeur de compilation fourni par le

Compilation trs optimise (code excutable embarqu) Contraintes spcifique: taille de code, accs mmoire La programmation en assembleur reste prsente au moins pour les pilotes et les couches basses. Le reste peut tre crit en langage de haut niveau et compil
Septembre 2011
23

Systmes Embarqus

Dveloppement embarqu

Il ne suffit pas savoir programmer, il faut savoir bien programmer !

Un systme embarqu doit tre robuste et son code bien crit. Le langage C est le langage le plus reconnu et utilis dans le dveloppement embarqu.

Le langage C est un langage de haut niveau mais proche du matriel.

Connaitre le langage dassembleur pour debugger


24

Septembre 2011

Systmes Embarqus

Dveloppement embarqu

Divers aspects prendre en compte dans le contexte des systmes embarqus :


Les contraintes temporelles La taille et l'organisation de la mmoire compacit et optimisation du code Les caractristiques spcifiques du processeur

(Ex : little endian/big endian)

Les protocoles de communication La scurit

Septembre 2011

25

Systmes Embarqus

Dveloppement embarqu

La mmoire - Les programmes utilisent 3 zones spcifiques en mmoire vive : Pour les allocations statiques (variables globales, tableaux allous statiquement,).

Pour les contextes d'appel des fonctions (variables locales, ) pile (stack). Pour les allocations dynamiques " la demande (malloc, new) : le tas (heap).

Attention, les fuites mmoire (memory leak) reprsentent un gros problme pour les systmes embarqus

Septembre 2011

26

Systmes Embarqus

Dveloppement embarqu

La mmoire - Optimisation du code :

Le code doit tre de taille limite des optimisations de toutes sortes sont

ncessaires pour rduire la taille du code

Septembre 2011

27

Systmes Embarqus

Dveloppement embarqu

Optimisation du code: Ex Version 1:

void copy (char *src, char *dst) { int i; for (i=0;src[i];i++) dst[i] = src[i]; }

(1) .globl copy (2) .type (3) copy: (4) pushl (5) movl (6) subl (7) movl (8) jmp (9) .L3: (10) movl (11) addl (12) movl (13) addl (14) movzbl (15) movb (16) addl (17).L2: (18) movl (19) addl (20) movzbl (21) testb (22) jne (23) leave (24) ret (25) .size (26) .section

copy, @function %ebp %esp, %ebp $16, %esp $0, -4(%ebp) .L2 -4(%ebp), %eax 12(%ebp), %eax -4(%ebp), %edx 8(%ebp), %edx (%edx), %edx %dl, (%eax) $1, -4(%ebp) -4(%ebp), %eax 8(%ebp), %eax (%eax), %eax %al, %al .L3 copy, .-copy .rodata

Gnration code assembleur: gcc -S


28

Septembre 2011

Systmes Embarqus

Dveloppement embarqu

Optimisation du code: Ex Version 2:

void copy (char *src, char *dst) { while (*dst++ = *src++); }

(1) .globl copy (2) .type (3) copy: (4) pushl (5) movl (6) .L2: (7) movl (8) movzbl (9) movl (10) movb (11) movl (12) movzbl (13) testb (14) setne (15) addl (16) addl (17) testb (18) jne (19) popl (20) ret (21) .size (22) .section

copy, @function %ebp %esp, %ebp 8(%ebp), %eax (%eax), %edx 12(%ebp), %eax %dl, (%eax) 12(%ebp), %eax (%eax), %eax %al, %al %al $1, 12(%ebp) $1, 8(%ebp) %al, %al .L2 %ebp copy, .-copy .rodata

Gnration code assembleur: gcc -S


29

Septembre 2011

Systmes Embarqus

Dveloppement embarqu

Temps d'excution - Optimisation du code :


des optimisations de toutes sortes sont

ncessaires pour rduire le temps d'excution

Ex :
Fonction factorielle par itration
int fact (int n) { int i,c=1; for (i=1;i<=n;i++) c=c*i; return c; }
Septembre 2011

Fonction factorielle rcursive


int fact (int n) { if (n==1) return 1; else return (n*fact(n-1)); }
30

Systmes Embarqus

Dveloppement embarqu

Optimisation du code: Ex Version 1 par itration:


int fact (int n) { int i,c=1; for (i=1;i<=n;i++) c=c*i; return c; }
Temps d'excution pour fact(150): 14s

(1) .globl fact (2) .type fact, @function (3) fact: (4) pushl %ebp (5) movl %esp, %ebp (6) subl $16, %esp (7) movl $1, -8(%ebp) (8) movl $1, -4(%ebp) (9) jmp .L9 (10).L10: (11) movl -8(%ebp), %eax (12) imull -4(%ebp), %eax (13) movl %eax, -8(%ebp) (14) addl $1, -4(%ebp) (15).L9: (16) movl -4(%ebp), %eax (17) cmpl 8(%ebp), %eax (18) jle .L10 (19) movl -8(%ebp), %eax (20) leave (21) ret (22) .size fact, .-fact

Gnration code assembleur: gcc -S


31

Fvrier 2011

Systmes Embarqus

Dveloppement embarqu

Optimisation du code: Ex Version 2rcursive:


int fact (int n) { if (n==1) return 1; else return (n*fact(n-1)); }
Temps d'excution pour fact(150): 157s

(1) .globl fact (2) .type fact, @function (3) fact: (4) pushl %ebp (5) movl %esp, %ebp (6) subl $24, %esp (7) cmpl $1, 8(%ebp) (8) jne .L13 (9) movl $1, %eax (10) jmp .L14 (11).L13: (12) movl 8(%ebp), %eax (13) subl $1, %eax (14) movl %eax, (%esp) (15) call fact (16) imull 8(%ebp), %eax (17).L14: (18) leave (19) ret (20) .size fact, .-fact (21) .section .rodata

Gnration code assembleur: gcc -S


32

Septembre 2011

Systmes Embarqus

Dveloppement embarqu

On remarque une diffrence pour le temps d'excution


Pour la fonction rcursive: 157s Pour la fonction par itration: 14s

Les calculs sont faits base d'un processeur Intel Core 2 Duo 2,10 GHZ et une mmoire RAM 1,4 GB Cause: la fonction rcursive utilise call au lieu du jmp dans le code assembleur:
La fonction call fait un jump vers l'adresse mmoire de la fonction excuter comme le jmp, mais en plus elle sauvegarde l'adresse de la prochaine instruction excuter dans le stack-call avant de faire le jump.
http://stackoverflow.com/questions/523540/jump-and-call http://wiki.answers.com/Q/Difference_between_JUMP_and_CALL_instructions

Septembre 2011

33

Systmes Embarqus

Dveloppement embarqu

Temps d'excution - Optimisation du code exemple :


utilisez le shift au lieu de la division seulement si on va diviser par un nombre la puissance 2 (2^X)

Ex :
Code non optimis
unsigned int b, a =115; b=a/16;
// 16 = 2^4

Code optimis
unsigned int b , a =115; b=a>>4;

Septembre 2011

34

Systmes Embarqus

Dveloppement embarqu

Temps d'excution - Optimisation du code exemple :

Ex :
Code non optimis for (int i=0; i<iMax; i++) { if (Val > CONST_VAL) { ... } else { .... } } }
Septembre 2011

Code optimis if (Val > CONST_VAL) { for (int i=0; i<iMax; i++) { ..... } } else { for (int i=0; i<iMax; i++) { ..... }
35

Systmes Embarqus

Dveloppement embarqu

D'autres exemples d'optimisation :


http://vhampiholi.blogspot.com/2010/04/fw-optimization-techniques-for-ti-dsps.html http://www.akhilesh.in/code/articles/001.php http://www.eventhelix.com/realtimemantra/basics/optimizingcandcppcode.htm http://leto.net/docs/C-optimization.php ,,,

Septembre 2011

36

Systmes Embarqus

Plateforme virtuelle

Distribution commerciale et initiatives "libres en progression, par exemple :

http://www.synopsys.com/virtualplatform http://www.ovpworld.org/

Proposent :

Des modles de processeurs et de divers composants (bus,

mmoires,)
Des plateformes pr-assembles Des outils

Septembre 2011

37

Vous aimerez peut-être aussi