Documente Academic
Documente Profesional
Documente Cultură
Patrice KADIONIK
email http
: kadionik@enseirb.fr : http://www.enseirb.fr/~kadionik
-1 -
INTRODUCTION
Prsentation des solutions techniques pour la mise en uvre de Linux dans l univers des systmes embarqus : Linux embarqu : Les concepts. L offre aujourd hui. Le Temps Rel et Linux. Les concepts. L offre aujourd hui. Pour pouvoir ensuite se poser les bonnes questions avant d oprer le bon choix.
-2 -
-3 -
-4 -
-5 -
-6 -
-7 -
-8 -
-9 -
LINUX EMBARQUE
Linux embarqu est une adaptation du noyau Linux un systme embarqu. Suivant les capacits du systme, on retrouve tout ou partie des fonctionnalits du noyau : Moins de services disponibles. Moins de mmoire requise (< 8 Mo). Boot depuis une mmoire ROM (FLASH). Pas de clavier ou de souris requis. Logiciels spciaux pour piloter les priphriques du systme (cran LCD, flash disk, Disk On Chip DOC, touch screen).
- 10 -
LINUX EMBARQUE
Une version de Linux embarqu peut tre spcialement configure pour coller une plateforme ou application prcise : Linux embarqu pour routeur IP. Linux embarqu sur PDA. Linux embarqu pour microcontrleur sans MMU. Linux embarqu sur processeur 80286 et infrieur. ...
- 11 -
- 12 -
- 13 -
- 14 -
- 15 -
- 16 -
2-4 Mo 4-16 Mo FLASH FLASH MIPS Hitachi SH x86 PowerPC Ardoise Internet Carte unit centrale System on Chip ( SoC) Routeur Dcodeur Stockage en rseau Imprimante en rseau
CompactPCI
- 17 -
- 18 -
- 19 -
http://www.metrowerks.com/embedded/
Linux embarqu. Linux Temps Rel
pk/2003 v 2.1 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
- 20 -
- 21 -
Little Board (5.75 x 8.0 in.) -- complete systems on a single compact board, expandable with plug-on function modules ISA "slot boards" (full-length, 13.8 x 4.8 in.; half-length, 7.1 x 4.8 in.) -- IBM PC plug-in cards which could function as standalone SBCs backplanes) PC/104 modules (3.6 x 3.8 in.) -- compact, rugged, self-stacking modules featuring a reliable pin-and-socket board-to-board expansion bus
Linux embarqu. Linux Temps Rel
pk/2003 v 2.1 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
- 22 -
Bus PCI en plus : PC/104-Plus -- PCI added to PC/104 EBX -- PC/104-Plus added to Little Board Cartes au format industriel VME, VXI, PXI...
Linux embarqu. Linux Temps Rel
pk/2003 v 2.1 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
- 23 -
- 24 -
- 25 -
- 26 -
- 27 -
- 28 -
- 29 -
- 30 -
- 31 -
- 32 -
- 33 -
- 34 -
- 35 -
- 36 -
- 37 -
- 38 -
- 39 -
- 40 -
- 41 -
- 42 -
- 43 -
- 44 -
- 45 -
Projet similaire Embedded Linux Workshop ELW : Outil de gnration dun Linux embarqu (OS+FS). http://elw.sourceforge.net/
- 46 -
- 47 -
- 48 -
Clinux ELW Embedded Debian Project, PeeWeeLinux LRP Montavista/Professional Edition Metrowerks/Creation Suite for Linux LynuxWorks/Bluecat Complexit de mise en uvre minimale
Linux embarqu. Linux Temps Rel
pk/2003 v 2.1 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
- 49 -
- 50 -
- 51 -
10-100K
RTL
1K-5K
Behavioral VHDL/Verilog
Schematics
Equations
1 1991 1993 1995 1997 1999 2001 2003 2005
- 52 -
- 53 -
- 54 -
NIOS D ALTERA
Loffre SoPC Excalibur dAltera permet la flexibilit de programmation des PLD (Programmable Logic Device) avec les performances de temps de traitement dun processeur embarqu sur silicium pour rpondre au besoin dun court TTM.
Logic
Memory
HighPerformance I/O
- 55 -
NIOS D ALTERA
200
ARM Core
MIPS Core
100
Performance (MIPs)
50
20
Core
Soft Core
Hard Cores
- 56 -
NIOS D ALTERA
BUS BUS
NIOS System
UART Timer PIO
- 57 -
- 58 -
NIOS D ALTERA
Software Development Tools RedHat GNUPro Toolkit (Compiler, Debugger) Nios Ethernet Development Kit (TCP/IP Stack) Operating System Support Linux Development Kit ATI Nucleus C/OS II
- 59 -
NIOS D ALTERA
Loffre SoPC Excalibur/NIOS dAltera complte du portage Linux (Clinux) sur NIOS de Microtronix permet davoir une vritable plateforme de Codesign. Une interface Ethernet IEEE 802.3 10BaseT (utilisant le composant CS8900A) permet davoir naturellement une connectivit IP sous Clinux. Il nexiste pas encore un portage GPL de Clinux pour NIOS. Il existe par contre un portage Clinux GPL pour le processeur soft Microblaze de Xilinx : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux/
Linux embarqu. Linux Temps Rel
pk/2003 v 2.1 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
- 60 -
- 61 -
PARTIE 1 : INTRODUCTION
- 62 -
- 63 -
- 64 -
- 65 -
- 66 -
- 67 -
- 68 -
- 69 -
- 70 -
4x ISR
Interrupt
3x ISR
time
OK
MAUVAIS
<n
ISR
time
n: dlai maximum
Linux embarqu. Linux Temps Rel
pk/2003 v 2.1 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
- 71 -
- 72 -
#include < unistd.h> #include < asm/i o.h> #define LPT 0x378 int ioperm(); int main(int argc, char **argv) { setuid (0); if (ioperm(LPT, 1, 1) < 0) { perror("ioperm ()"); exit(-1); } Linux embarqu. Linux Temps Rel
pk/2003 v 2.1 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
- 73 -
- 74 -
- 75 -
- 76 -
- 77 -
- 78 -
Linux standard
Linux embarqu. Linux Temps Rel
pk/2003 v 2.1 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
- 79 -
- 80 -
- 81 -
- 82 -
VERITABLE RTOS
Avantages : simplicit, monolithique, fait pour le TR, petit overhead. Inconvnients : fonctionnalits limites. Exemples : VxWorks, QNX, pSOS, VRTX, C/OS II...
- 83 -
Extension TR
Hardware
Linux embarqu. Linux Temps Rel
pk/2003 v 2.1 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
- 84 -
- 85 -
PATCH DU NOYAU
Il existe deux principaux patchs permettant d'amliorer la ractivit du noyau Linux : Patch Preempt Kernel Patch Low Latency
- 86 -
PATCH DU NOYAU
Le patch Preempt Kernel est maintenu par Robert M. Love et soutenu par MontaVista : http://www.tech9.net/rml/linux Le principe du patch est de rendre le noyau totalement premptible et de protger les donnes du noyau par des mutexs (ou spinlocks). A chaque fois qu un vnement apparat et rend un processus de plus forte priorit prt, le noyau prempte le processus courant et ex cute le processus de plus forte priorit.
- 87 -
PATCH DU NOYAU
Le patch Low Latency est maintenu par Andrew Morton : http://www.zip.com.au/~akpm/linux/schedlat.html Le principe est un peu diffrent car au lieu d'opter pour une stratgie systmatique du noyau tout premptif, les d veloppeurs du patch ont prfr effectuer une analyse du code source du noyau afin d'ajouter des points de premption obligatoire (appel de schedule()) subtilement placs dans les sources du noyau afin de casser des boucles non premptibles trop longues.
- 88 -
- 89 -
- 90 -
- 91 -
CONCLUSION
Les patchs prcdents permettent d'amliorer les temps de latence sur le noyau Linux standard mais le concept se rapproche plus d'une amlioration de la qualit de service que du temps rel dur. La ractivit est maintenant de l ordre de quelques dizaines quelques centaines de s au lieu de quelques dizaines quelques centaines de ms voire plus pour un noyau Linux standard ! Des mesures faites par Metrowerks l aide du Latency Benchmark de Systems Software Labs montrent que dans 99,5 % des cas, le temps de latence est infrieur 200 s pour les 2 patchs (voir le whitepaper Linux as a Real-Time operating System de Metrowerks). Une solution Temps Rel dur donnera un temps de latence infrieur x s dans 100 % des cas !
Linux embarqu. Linux Temps Rel
pk/2003 v 2.1 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
- 92 -
CONCLUSION
La mise en uvre d un patch pr emptif est voir comme une solution intermdiaire o la mise en uvre et la programmation restent simples pour dvelopper des applications TR. Une fusion des deux patchs est intgre dans le futur noyau 2.6.
- 93 -
- 94 -
- 95 -
- 96 -
- 97 -
Networking
Tornado II embedded development platform
- 98 -
- 99 -
Solution commerciale TR compatible Linux. Systme TR. LynuxWorks Systems (ex Lynx). http://www.lynxos.com/
LynxOS is unique in the real-time embedded software marketplace. It is a hard RTOS that combines performance, reliability, openness, and scalability together with patented technology for real-time event handling. Flexible scalability makes the LynxOS well suited for applications ranging from large and complex switching systems down to small highly
LynxOS is binary compatible with the BlueCat Linux, enabling users to take advantage of the best configuration for
embedded products.
their needs. In addition, LynuxWorks also supports traditional UNIX and Java and supports processors from Intel, Motorola, and MIPS. LynxOS offers users a choice of software application interfaces, a large number of development tools, scalability and memory efficiency which reflect the many years of expertise LynuxWorks has in the real-time embedded systems market.
- 100 -
- 101 -
Plus d infos : http://www.linuxdevices.com/articles/AT4185744181.html Le patch kpreempt de Montavista est sous licence GPL : http://www.tech9.net/rml/linux/
- 102 -
- 103 -
- 104 -
- 105 -
- 106 -
- 107 -
- 108 -
RTAI
Solution libre dextension TR de Linux. Systme TR. Universit de Milan en Italie. http://www.aero.polimi.it/~rtai/ Mise en place d une couche d abstraction Mise en service sous forme de modules Linux : Linux apparat comme la tche de fond de plus faible priorit.
- 109 -
- 110 -
HISTOIRE DE RTLinux
RTLinux a t dvelopp originellement par un chercheur de luniversit de New Mexico avec laide dun tudiant : Victor Yodaiken et Michael Barabanov. D abord sous licence GPL, un brevet (US Patent No. 5,995,745) a t dpos sur le principe de fonctionnement de RTLinux, ce qui est incompatible avec la notion de logiciel libre. Une entreprise prive FSMLabs a t cre pour distribuer RTLinux. Devant le toll gnral, FSMLabs dcide de distribuer une version GPL OpenRTLinux et une version commerciale RTLinux/PRO plus complte.
Linux embarqu. Linux Temps Rel
pk/2003 v 2.1 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
- 111 -
HISTOIRE DE RTLinux
Non GPL
RTLinux V3 PROfessionnel
- 112 -
HISTOIRE DE RTLinux
RTLinux V 1 : Noyau Linux 2.0.x. Pas de support SMP (Symmetric Multi Processor). API simple de prs 15 fonctions. RTLinux V2 : Noyau Linux 2.2.x. SMP. API style POSIX. RTLinux V3 : Noyau Linux 2.2.19 &2.4.40 (26/11/2001). Version GPL et PRO.
Linux embarqu. Linux Temps Rel
pk/2003 v 2.1 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
- 113 -
FONCTIONNALITES DE RTLinux
Mise en service sous forme de modules Linux. Les tches TR sont charges comme des modules Linux. Linux apparat comme la tche de fond. RTLinux propose une API simple pour une programmation TR. LAPI POSIX thread est supporte pour lcriture de tches TR. Les communications entre processus Linux et les tches TR se font par des FIFOS. Le dernire version stable supporte les processeurs x86, PowerPC et Alpha.
- 114 -
IPC RTLinux
Les Communications Inter Processus IPC se font par des FIFOS RT. Les buffers des FIFOS RT sont allous dans lespace noyau. Le nombre maximal de FIFOS est fixe (fix la compilation du noyau). Une FIFO est unidirectionnelle. Pour des communications bidirectionnelles, il en faut donc 2.
- 115 -
IPC RTLinux
Des IPC par mmoire partage sont possibles entre processus Linux et tches RTLinux. Il convient de charger le module mbuff et de travailler avec le priphrique /dev/mbuff. Un processus Linux peut mapper une zone mmoire alloue dans lespace noyau dans son propre espace dadressage. La mmoire alloue dans lespace noyau nest pas forcment physiquement contigue . Elle ne peut tre swappe.
- 116 -
- 117 -
RT Fifo User Process RT Fifo X Windows Linux Kernel RT Process Display Disk Network Peripheral Device
- 118 -
- 119 -
- 120 -
- 121 -
pk/2003 v 2.1 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
- 123 -
- 124 -
BILAN
- 125 -
- 126 -
Ractivit qq 10-100 ms
Patch kpreempt Patch low lat Montavista Metrowerks TimeSys BlueCat RT Montavista RTLinux, RTAI
qq 100 s
qq 10 s
- 127 -
- 128 -
BlueCat RT Installation de modules Linux spcifiques Montavista API spcifique ou POSIX RTLinux, RTAI COMPLEXE
Linux embarqu. Linux Temps Rel
pk/2003 v 2.1 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
- 129 -
REFERENCES BIBLIOGRAPHIQUES
Real-Time and Embedded Guide. H. Bruyninckx. http://people.mech.kuleuven.ac.be/~bruyninc/rthowto/ Embedded Linux Howto http://linux-embedded .org/howto/Embedded -Linux-Howto.html Linux Magazine. Linux Temps Rel. O en est-on aujourd hui ? P. Kadionik et Pierre Ficheux. Juillet-aot 2003. http://www.enseirb.fr/~kadionik/embedded/linux_realtime/linuxre altime.html La page de l auteur : http://www.enseirb.fr/~kadionik/embedded /embedded.html
Linux embarqu. Linux Temps Rel
pk/2003 v 2.1 Reproduction et exploitation des fins commerciales interdites sans l'accord exprs des auteurs
- 130 -
- 131 -
REFERENCES BIBLIOGRAPHIQUES
- 132 -