Upload
erna
View
44
Download
1
Embed Size (px)
DESCRIPTION
eCos : un système d’exploitation pour les applications embarquées. Nicolas Vial [email protected]. 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 - PowerPoint PPT Presentation
Citation preview
eCos : un système d’exploitation pour les applications embarquées
Nicolas [email protected]
UJF/IMA/M2PGI/SRRhttp://ufrima.imag.fr/dessgi Année Universitaire 2004-2005
22/04/23 2
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
22/04/23 3
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)
22/04/23 4
Motivations
Open Source Exempt de royalties Configurabilité (OS à la carte) Temps réel Faible empreinte mémoire (systèmes enfouis) Portabilité Réseaux
22/04/23 5
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
22/04/23 6
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é)
22/04/23 7
Le Component Repository
22/04/23 8
Configuration avec GUI
22/04/23 9
Exemple de configuration
22/04/23 10
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 ...
22/04/23 11
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
22/04/23 12
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
22/04/23 13
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
22/04/23 14
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
22/04/23 15
Architecture de RedBoot
RedBoot Rom Monitor
Command Line Interface(CLI) X/Y Modem
File SystemNetworking StackGDB Stubs
Hardware Abstraction Layer(HAL)
Device DriverEthernet, Serial,Flash
Application eCos
Cible Matérielle
22/04/23 16
Systèmes de fichiers
eCos supporte actuellement• ROM filesystem• RAM filesystem• JFFS2
eCos supportera dans l ’avenir• VFAT• NFS
22/04/23 17
Architecture réseau générale d’eCos
22/04/23 18
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
22/04/23 19
Fonctionnalités supplémentaires
Support PCI,USB
SMP (Symmetric Multi-Processing Support)
The GoAhead Embedded WebServer
Microwindows GUI
22/04/23 20
Ce que cela peut donner
22/04/23 21
De plus près ...
22/04/23 22
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
22/04/23 23
Les dessous de l’outil de configuration
Les fichiers scripts CDL (Common Description Language)
cdl_package CYGPKG_HAL_I386_PC {2 display "i386 PC Target"3 parent CYGPKG_HAL_I3864 define_header hal_i386_pc.h5 include_dir cyg/hal6 description "7 The i386 PC Target HAL package provides8 the support needed to run eCos binaries9 on an i386 PC."1011 compile hal_diag.c plf_misc.c plf_stub.c1213 implements CYGINT_HAL_DEBUG_GDB_STUBS14 implements CYGINT_HAL_DEBUG_GDB_STUBS_BREAK15 implements CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT1617 cdl_component CYG_HAL_STARTUP {18 display "Startup type"19 flavor data20 legal_values {"RAM" "FLOPPY" "ROM"}21 default_value {"RAM"}22 no_define23 define -file system.h CYG_HAL_STARTUP24 description "25 It is possible to configure eCos26 for … ROM startup is experimental35 at this time."36 }
22/04/23 24
Les scripts CDL dans le GUI
22/04/23 25
Résolution interactive des incohérences
22/04/23 26
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
22/04/23 27
Construire et installer RedBoot (sur une cible PC dans le cas suivant)
Source Tree(Local Repository)
Redboot_FLOPPY.ecm
Redboot.ecc
Redboot.bin
GNU CROSSDevelopment Tools
and Make Utility(GCC,AS,LD,AR)
Install Tree Build Tree
Cygwin Tools(dd)
Floppy Disk
ConfigTool
22/04/23 28
Construction d’eCos
Source TreeLocal Repository
eCos.eccGNU CROSS
Development Tools and Make Utility
(GCC,AS,LD,AR)
Install Tree Build Tree
ConfigTool
libtarget.a
22/04/23 29
Construction de l’application
GNU Make Utility essai1.c
GNU Cross Compileri386-elf-gcc
GNU Linkeri386-elf-ld
libtarget.a
essai1.exe
GNU Binutilsi386-elf-objcopy
essai1.srec
22/04/23 30
Débuguer l’application
SerialSerial Ethernet Ethernet
Application
GDB
InsightRedBoot
(Include GDB Stub)
Hôte Cible
22/04/23 31
Débugage avec Insight GDB
22/04/23 32
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.
22/04/23 33
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
22/04/23 34
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.