eCos : un système d’exploitation pour les applications embarquées
description
Transcript of eCos : un système d’exploitation pour les applications embarquées
![Page 1: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/1.jpg)
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
![Page 2: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/2.jpg)
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
![Page 3: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/3.jpg)
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)
![Page 4: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/4.jpg)
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
![Page 5: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/5.jpg)
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
![Page 6: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/6.jpg)
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é)
![Page 7: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/7.jpg)
22/04/23 7
Le Component Repository
![Page 8: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/8.jpg)
22/04/23 8
Configuration avec GUI
![Page 9: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/9.jpg)
22/04/23 9
Exemple de configuration
![Page 10: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/10.jpg)
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 ...
![Page 11: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/11.jpg)
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
![Page 12: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/12.jpg)
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
![Page 13: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/13.jpg)
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
![Page 14: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/14.jpg)
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
![Page 15: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/15.jpg)
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
![Page 16: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/16.jpg)
22/04/23 16
Systèmes de fichiers
eCos supporte actuellement• ROM filesystem• RAM filesystem• JFFS2
eCos supportera dans l ’avenir• VFAT• NFS
![Page 17: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/17.jpg)
22/04/23 17
Architecture réseau générale d’eCos
![Page 18: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/18.jpg)
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
![Page 19: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/19.jpg)
22/04/23 19
Fonctionnalités supplémentaires
Support PCI,USB
SMP (Symmetric Multi-Processing Support)
The GoAhead Embedded WebServer
Microwindows GUI
![Page 20: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/20.jpg)
22/04/23 20
Ce que cela peut donner
![Page 21: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/21.jpg)
22/04/23 21
De plus près ...
![Page 22: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/22.jpg)
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
![Page 23: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/23.jpg)
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 }
![Page 24: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/24.jpg)
22/04/23 24
Les scripts CDL dans le GUI
![Page 25: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/25.jpg)
22/04/23 25
Résolution interactive des incohérences
![Page 26: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/26.jpg)
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
![Page 27: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/27.jpg)
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
![Page 28: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/28.jpg)
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
![Page 29: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/29.jpg)
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
![Page 30: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/30.jpg)
22/04/23 30
Débuguer l’application
SerialSerial Ethernet Ethernet
Application
GDB
InsightRedBoot
(Include GDB Stub)
Hôte Cible
![Page 31: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/31.jpg)
22/04/23 31
Débugage avec Insight GDB
![Page 32: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/32.jpg)
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.
![Page 33: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/33.jpg)
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
![Page 34: eCos : un système d’exploitation pour les applications embarquées](https://reader036.fdocument.pub/reader036/viewer/2022062501/56816830550346895dddd7a8/html5/thumbnails/34.jpg)
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.