400 likes | 715 Views
eCos : un système d’exploitation pour les applications embarquées. Nicolas Vial vialn@ufrima.imag.fr. UJF/IMA/M2PGI/SRR http://ufrima.imag.fr/dessgi. Année Universitaire 2004-2005. Sommaire. Un OS pour l’embarqué ? Motivations Un peu d’histoire Outils de configuration
E N D
eCos : un système d’exploitation pour les applications embarquées Nicolas Vial vialn@ufrima.imag.fr UJF/IMA/M2PGI/SRR http://ufrima.imag.fr/dessgi Année Universitaire 2004-2005
Sommaire • Un OS pour l’embarqué ? • Motivations • Un peu d’histoire • Outils de configuration • Ecos et la portabilité • RedBoot • Fonctionnalités supplémentaires d’eCos • La conception de système avec eCos • Un exemple d’application utilisant eCos
Un OS pour l ’embarqué ? • Les systèmes embarqués sont partout • Electro-ménager, PDA, Consoles de jeux, TV& HI-FI, Téléphones portables, Lecteur MP3, Web Pad etc… • Marché des systèmes embarqués • En 2005, on estime qu ’ils génèreront plus d’argent que les exportations pétrolières. • Les systèmes embarqués au cœur de la tendance • Complexité croissante • Time To Market (TTM)
Motivations • Open Source • Exempt de royalties • Configurabilité (OS à la carte) • Temps réel • Faible empreinte mémoire (systèmes enfouis) • Portabilité • Réseaux
Un peu d ’histoire ... • Là où tout commença--Cygnus solutions (1989) • 1997 Démarrage du projet eCos (Embedded Configurable Operating System) • 1998 Première version • Red Hat • 1999 Rachat de Cygnus par Red Hat • 2000 Ajout de RedBoot • 2002 Red Hat licencie l’équipe eCos • eCosCentric • 2002 L’équipe eCos fonde eCosCentric
Outils de configuration • Deux solutions • Interface graphique • Linux & Windows NT/2000/XP • Possibilité de construire et de tester le système • Granularité fine ou grossière au choix (templates, component, package) • Commande en ligne • Linux & Windows (Cygwin) • Granularité grossière uniquement, pour travailler avec une granularité plus fine obligation d’éditer les fichiers de sauvegardes (compliqué et risqué)
eCos et la portabilité • Ecos supporte une grande partie des cartes d’évaluation que l’on trouve sur le marché. Les principales architectures processeur supportées sont : • ARM • Fujitsu FR-V • Hitachi H8/300 • Intel x86 • Matsushita AM3x • MIPS • PowerPC • Samsung CalmRISC • Sparc/SparCLite • M68K • SuperH ...
Hardware Abstraction Layer • Le HAL est une couche logiciel, qui encapsule le HW sous-jacent • Le HAL est divisé en trois sous-modules • Architecture ( 1 famille de processeurs = 1 architecture dans eCos) • Principales responsabilités : CPU startup, interrupt delivery, context switching • Variante (processeur spécifique au sein d’une famille de processeurs) • Variante de processeur qui gèrerait une MMU (Memory Management Unit) • plate-forme (typiquement une carte d’évaluation) • Responsabilités : plate-forme startup, IO access, Timer, chip configuration
Kernel • Ordonnanceur, threads • Mutexes, sémaphores • Temps réels • Implémenté en C++, mais pas d’API officielle pour permettre aux applications de s’interfacer directement avec le kernel
APIs Standards • POSIX • 1003.1-1996 actuellement • 1003.1-2001 prochainement • 1003.13 Minimal Real Time System Profile • µITRON • Version 3.02 Level S/E • ANSI C • C-89 compatible C et librairies math. • Quelques compatibilités C-99
RedBoot (Red Hat Embedded Debug and Bootstrap) • Rom Monitor • programme en ROM ou flash memory qui offre des fonctionnalités pour le debuggage. • GDB Remote Protocol • RedBoot fournit son propre talon GDB pour communiquer avec le GDB de la machine hôte (connexion série ou Ethernet) • Program Loading • Via port série : X/Y modem • Via Ethernet : telnet
Architecture de RedBoot Application eCos RedBoot Rom Monitor Command Line Interface (CLI) X/Y Modem GDB Stubs Networking Stack File System Hardware Abstraction Layer (HAL) Device Driver Ethernet, Serial,Flash Cible Matérielle
Systèmes de fichiers • eCos supporte actuellement • ROM filesystem • RAM filesystem • JFFS2 • eCos supportera dans l ’avenir • VFAT • NFS
Supports Réseaux • Choix entre 2 implémentations de pile TCP/IP • OpenBSD, FreeBSD • Autres protocoles • SNMP, TFTP, FTP, HTTP, BOOTP, DNS • Dans le futur • PPP
Fonctionnalités supplémentaires • Support PCI,USB • SMP (Symmetric Multi-Processing Support) • The GoAhead Embedded WebServer • Microwindows GUI
La conception de systèmes avec eCos • Configuration de la plate-forme hôte (Windows) • Installation Cygwin + GNU Tools (natif) • Construction des outils de Cross-development • Installation du kit de développement eCos • Configuration de l’OS via le Configuration Tool
Les dessous de l’outil de configuration • Les fichiers scripts CDL (Common Description Language)
Un exemple d’application utilisant eCos • La marche à suivre Construire RedBoot pour lancer et debugger l ’application Installer RedBoot sur la cible Construire les librairies eCos Construire l ’application et la linker à eCos Lancer et debugger l ’application
Construire et installer RedBoot (sur une cible PC dans le cas suivant) Source Tree (Local Repository) GNU CROSS Development Tools and Make Utility (GCC,AS,LD,AR) Config Tool Redboot_FLOPPY.ecm Redboot.ecc Install Tree Build Tree Redboot.bin Cygwin Tools (dd) Floppy Disk
Construction d’eCos Source Tree Local Repository GNU CROSS Development Tools and Make Utility (GCC,AS,LD,AR) Config Tool eCos.ecc Install Tree Build Tree libtarget.a
Construction de l’application GNU Make Utility essai1.c GNU Cross Compiler i386-elf-gcc GNU Linker i386-elf-ld libtarget.a essai1.exe GNU Binutils i386-elf-objcopy essai1.srec
Débuguer l’application Hôte Cible Application Insight GDB RedBoot (Include GDB Stub) Serial Ethernet Ethernet Serial
Documentation consultée • Anthony Massa, Embedded Software development with eCos, Ed Prentice Hall, ISBN : 0-13-035473-2, www.phptr.com/massa • Guide complet d’utilisation d’eCos. • Pierre Ficheux, Linux embarqué, Eyrolles, Chapitre 8 pages 172-173, ISBN : 2-212-11024-3, http://pficheux.free.fr • Méthodologie pour construire, à partir d’un noyau Linux, un système embarqué. Présentation de deux études de cas : Lecteur/Enregitreur MP3 & Station de consultation Internet. • Karim Yaghmour, Building Embedded Linux Systems,O ’Reilly, Chapitre 2, ISBN : 0-596-00222-X • Comment concevoir et construire son système embarqué en utilisant Linux. De nombreux exemples présents dans chaque chapitre.
Références • http://ecos.sourceware.org/doc-2.0/user-guide/real-time-characterization.html • Mesures des performances RT (Deterministic Kernel Primitives) • http://sources.redhat.com/eCos/ • Site officiel • http://www.ecoscentric.com • Site très actif, étroitement lié à la communauté eCos et aux entreprises de pointes. • http://www.extremtech.com/article2/0,3973,1089152,00.asp • GameBoy Owners Will Surf On The Web
Références, suite... • http://www.goahead.com/webserver/webserver.htm • http://www.microwindows.org • Miguel Santana, Conférence Embedded Systems & DSP Compilers, STMicroelectronics DAIS, Central R&D.