Title: eCos : un syst
1eCos un système dexploitation pour les
applications embarquées
- Nicolas Vial
- vialn_at_ufrima.imag.fr
UJF/IMA/M2PGI/SRR http//ufrima.imag.fr/dessgi
Année Universitaire 2004-2005
2Sommaire
- Un OS pour lembarqué ?
- Motivations
- Un peu dhistoire
- Outils de configuration
- Ecos et la portabilité
- RedBoot
- Fonctionnalités supplémentaires deCos
- La conception de système avec eCos
- Un exemple dapplication utilisant eCos
3Un 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
dargent que les exportations pétrolières. - Les systèmes embarqués au cœur de la tendance
- Complexité croissante
- Time To Market (TTM)
4Motivations
- Open Source
- Exempt de royalties
- Configurabilité (OS à la carte)
- Temps réel
- Faible empreinte mémoire (systèmes enfouis)
- Portabilité
- Réseaux
5Un 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
6Outils 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é)
7Le Component Repository
8Configuration avec GUI
9Exemple de configuration
10eCos et la portabilité
- Ecos supporte une grande partie des cartes
dévaluation que lon 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 ...
11Hardware 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 dune
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
12Kernel
- Ordonnanceur, threads
- Mutexes, sémaphores
- Temps réels
- Implémenté en C, mais pas dAPI officielle pour
permettre aux applications de sinterfacer
directement avec le kernel
13APIs 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
14RedBoot (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
15Architecture de RedBoot
Application eCos
RedBoot Rom Monitor
Command Line Interface (CLI)
X/Y Modem
File System
Networking Stack
GDB Stubs
Hardware Abstraction Layer (HAL)
Device Driver Ethernet, Serial,Flash
Cible Matérielle
16Systèmes de fichiers
- eCos supporte actuellement
- ROM filesystem
- RAM filesystem
- JFFS2
- eCos supportera dans l avenir
- VFAT
- NFS
17Architecture réseau générale deCos
18Supports 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
19Fonctionnalités supplémentaires
- Support PCI,USB
- SMP (Symmetric Multi-Processing Support)
- The GoAhead Embedded WebServer
- Microwindows GUI
20Ce que cela peut donner
21De plus près ...
22La 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 lOS via le Configuration Tool
23Les dessous de loutil de configuration
- Les fichiers scripts CDL (Common Description
Language)
24Les scripts CDL dans le GUI
25Résolution interactive des incohérences
26Un exemple dapplication utilisant eCos
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
27Construire et installer RedBoot (sur une cible
PC dans le cas suivant)
Source Tree (Local Repository)
Redboot_FLOPPY.ecm
GNU CROSS Development Tools and Make
Utility (GCC,AS,LD,AR)
Config Tool
Redboot.ecc
Install Tree
Build Tree
Redboot.bin
Cygwin Tools (dd)
Floppy Disk
28Construction deCos
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
29Construction de lapplication
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
30Débuguer lapplication
Hôte
Cible
Application
Insight
GDB
RedBoot (Include GDB Stub)
Serial
Serial
Ethernet
Ethernet
31Débugage avec Insight GDB
32Documentation consultée
- Anthony Massa, Embedded Software development with
eCos, Ed Prentice Hall, ISBN 0-13-035473-2,
www.phptr.com/massa - Guide complet dutilisation deCos.
- Pierre Ficheux, Linux embarqué, Eyrolles,
Chapitre 8 pages 172-173, ISBN 2-212-11024-3,
http//pficheux.free.fr - Méthodologie pour construire, à partir dun 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.
33Ré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
34Ré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 RD.