34
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

eCos : un système d’exploitation pour les applications embarquées

  • 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

Page 1: eCos : un système d’exploitation pour les applications embarquées

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

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

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

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

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

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

22/04/23 7

Le Component Repository

Page 8: eCos : un système d’exploitation pour les applications embarquées

22/04/23 8

Configuration avec GUI

Page 9: eCos : un système d’exploitation pour les applications embarquées

22/04/23 9

Exemple de configuration

Page 10: eCos : un système d’exploitation pour les applications embarquées

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

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

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

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

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

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

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

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

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

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

22/04/23 20

Ce que cela peut donner

Page 21: eCos : un système d’exploitation pour les applications embarquées

22/04/23 21

De plus près ...

Page 22: eCos : un système d’exploitation pour les applications embarquées

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

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

22/04/23 24

Les scripts CDL dans le GUI

Page 25: eCos : un système d’exploitation pour les applications embarquées

22/04/23 25

Résolution interactive des incohérences

Page 26: eCos : un système d’exploitation pour les applications embarquées

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

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

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

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

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

22/04/23 31

Débugage avec Insight GDB

Page 32: eCos : un système d’exploitation pour les applications embarquées

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

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

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.