Systmes Embarqus
Septembre 2011
Systmes Embarqus
Historique
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
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.
Linterface utilisateur est spcifique : Ecran LCD, voyants, touches, clavier personnalis
5
Septembre 2011
Systmes Embarqus
Dfinition et Introduction
Control systems : Systmes temps rels, contrle de moteurs automobile, contrles dlments de navigation arienne.
Septembre 2011
Systmes Embarqus
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
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 consommation
Septembre 2011
Systmes Embarqus
Acquisition
Traitement
Restitution et commande
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
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
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
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
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
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
Microcontroleurs :
DSP :
Processeurs :
Septembre 2011
Systmes Embarqus
Septembre 2011
20
Systmes Embarqus
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
Septembre 2011
22
Systmes Embarqus
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
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.
Septembre 2011
Systmes Embarqus
Dveloppement embarqu
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
Le code doit tre de taille limite des optimisations de toutes sortes sont
Septembre 2011
27
Systmes Embarqus
Dveloppement embarqu
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
Septembre 2011
Systmes Embarqus
Dveloppement embarqu
(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
Septembre 2011
Systmes Embarqus
Dveloppement embarqu
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
Systmes Embarqus
Dveloppement embarqu
(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
Fvrier 2011
Systmes Embarqus
Dveloppement embarqu
(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
Septembre 2011
Systmes Embarqus
Dveloppement embarqu
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
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
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
Septembre 2011
36
Systmes Embarqus
Plateforme virtuelle
http://www.synopsys.com/virtualplatform http://www.ovpworld.org/
Proposent :
mmoires,)
Des plateformes pr-assembles Des outils
Septembre 2011
37