Trampoline un support pour le développement d applications temps réel

Documents pareils
Utilisation de matériels industriels avec des outils de virtualisation open source. Open Source dans le monde industriel

Mécanismes de protection dans AUTOSAR OS

Alexandre Buge Epitech 5 Promo Soutenance de stage du 01/03/2004 au 31/08/2004

Linux embarqué: une alternative à Windows CE?

Génération de code binaire pour application multimedia : une approche au vol

Diagrammes de Package, de déploiement et de composants UML

Cours 3 : L'ordinateur

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Modélisation des interfaces matériel/logiciel

DEPLOIEMENT MICROSOFT WINDOWS

Guide d installation de SugarCRM Open Source version 4.5.1

Plan de la conférence. Virtualization. Définition. Historique. Technique. Abstraction matérielle

Linux 1: Présentation

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

SRS DAY: Problématique liée à la virtualisation

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

2X ThinClientServer Guide d utilisation

Le matériel informatique

VMware ESX/ESXi. 1. Les composants d ESX. VMware ESX4 est le cœur de l infrastructure vsphere 4.

MANUELS NUMÉRIQUES PROCÉDURE DE TÉLÉCHARGEMENT

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Les avantages de la virtualisation sont multiples. On peut citer:

Virtualisation du poste de travail. Denis CASANOVA UFR Sciences & Technologies CUME - 29 Mars 2012

Virtualisation Vserver et OpenVz en entreprise

Sans trop entrer dans les détails, la démarche IO Model consiste à : Pour cela, Microsoft découpe la maîtrise de l infrastructure en quatre niveaux :

Exécutif temps réel Pierre-Yves Duval (cppm)

Systèmes et exécutifs temps-réel

Programmation C. Apprendre à développer des programmes simples dans le langage C

Annexe : La Programmation Informatique

Implémentation Matérielle des Services d un RTOS sur Circuit Reconfigurable

Généralités sur les systèmes d Exploitation

Découverte des Logiciels Libres. Gilles Dequen

Architecture distribuée

Exigences système Commercial & Digital Printing

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Introduction. Gestion de la consommation énergétique. Contexte du cloud computing Instrumentation et contrôle

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996]

Environnements et Outils de Développement Cours 1 Introduction

Premier Accelerate Packages: Azure Fast Start

MANUEL D INSTALLATION DES PRE REQUIS TECHNIQUES SALLE DES MARCHES V.7

Exigences système Commercial & Digital Printing

Square-IT-Consulting. Présentation

Exigences système Edition & Imprimeries de labeur

Pour obtenir les coordonnées des personnes citées ci-dessous veuillez contacter Julie au ou par mail

Tutoriel déploiement Windows 7 via serveur Waik

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

Firewall IDS Architecture. Assurer le contrôle des connexions au. Sécurité 1

Openmoko, free your phone!

Généralités sur les systèmes d Exploitation

Virtualisation CITRIX, MICROSOFT, VMWARE OLIVIER D.

Virtual Box Mettez un PC dans votre... PC

Bacula. It comes by night and sucks the vital essence from your computers. Guillaume Arcas

VMware vsphere 5 Préparation à la certification VMware Certified Professional 5 Data Center Virtualization (VCP5-DCV) - Examen VCP510

Administration de systèmes

GUIDE PRATIQUE déplacements professionnels temporaires en France et à l étranger

SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2

1. Présentation du TP

CORBA. (Common Request Broker Architecture)

Mise en place d un projet VDI

EN Télécom & Réseau S Utiliser VMWARE

Introduction aux systèmes temps réel

Temps Réel. Jérôme Pouiller Septembre 2011

Administration des ressources informatiques

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

La Continuité d Activité

Vers une fédération de Cloud Académique dans France Grilles J. Pansanel pour le groupe FG-Cloud (M. Airaj, C. Cavet, V. Hamar, M. Jouvin, C.

Software and Hardware Datasheet / Fiche technique du logiciel et du matériel

Mobile OGSI.NET: Grid Computing on Mobile Devices

EN Télécom & Réseau S Utiliser VMWARE

Alfstore workflow framework Spécification technique

NEWS La communication, clé de la réussite. Communiqué. Comités de standardisation SOMMAIRE. Rencontres lors des conférences

Guide d utilisation de PL7 Pro Récupérer ou transférer un programme

Learning Object Metadata

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Rootkit pour Windows Mobile 6

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

Exigences système Edition & Imprimeries de labeur

Présentation Utilisation. VirtualBox. Firas Kraïem. 22 février 2014

Qu est ce qu un un serveur?

RoomMate Guide de l'utilisateur

Programmation en Java IUT GEII (MC-II1) 1

Les méthodes de sauvegarde en environnement virtuel

La technologie Java Card TM

MI03 TP. Objectifs du TP 1ère séance. 2ème séance. Construction d'un système linux embarqué complet

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Fiche Technique. Cisco Security Agent

Suite bureautique, les enjeux d'une alternative.

Cours de Systèmes d Exploitation

WSM la solution complète de provisionnement de bureaux virtuels

PRESENSTATION VMWARE ESXi NOTION DE MACHINE VIRTUELLE

comment installer les pilotes USB

Les tablettes. Présentation tablettes Descriptif Fournisseurs Caractéristiques Comparatifs Conseils Perspectives Démonstration

Caractéristiques principales:

Industrie 4.0 L usine connectée

Le Projet InCaS ( ) Consortium

Cisco CCVP. Architecture Cisco UCM

Transcription:

Trampoline un support pour le développement d applications temps réel Jean-Luc Béchennec, Mikaël Briday, Sébastien Faucou, Pierre Molinaro et Yvon Trinquet Institut de Recherche en Communications et en Cybernétique de Nantes Nantes - France CNRIUT 2009 - Lille

Plan 2 1. Contexte d un exécutif temps réel 2. Objectifs de Trampoline 3. OSEK/VDX 4. OSEK/OIL 5. Cas d utilisation 6. Dissémination

Applications 3 Grande consommation sèche linge, machine à café,... Hi tech téléphonie, lecteurs MP3, APN,... Automobile ABS, ESP, contrôle moteur,... Avionique, spatial, ferroviaire...

système embarqué? Temps Réel? 4 Embarqué périphériques (imprimantes fax,..) décodeur vidéo grand public Temps réel souple assistant personnel PDA téléphonie mobile automobile contrôle moteur contrôle de production embarqué grand public (cafetière,..) avionique commandes de vol électriques source: I. Puaut dur

Utilisation d un OS Temps Réel? 5 Complexité de l application interruptions Taille du Système (ROM, CPU)

Utilisation d un OS Temps Réel? 5 Complexité de l application Exécutif Temps Réel interruptions Taille du Système (ROM, CPU)

Utilisation d un OS Temps Réel? 5 Complexité de l application Système POSIX,WinCE, Exécutif Temps Réel interruptions Taille du Système (ROM, CPU)

Utilisation d un OS Temps Réel? 5 Complexité de l application Système POSIX,WinCE, Exécutif Temps Réel Java interruptions Taille du Système (ROM, CPU)

Fonctions de base 6 Ordonnancement des tâches entre elles Synchronisation des tâches Communication: interne: entre les tâches externe: avec les tâches sur d autres processeurs Pilotes matériels (drivers) tâche 1 tâche 2 Système d exploitation... tâche n drivers Matériel

Fonctions de base 6 Ordonnancement des tâches entre elles Synchronisation des tâches Communication: interne: entre les tâches externe: avec les tâches sur d autres processeurs Pilotes matériels (drivers) tâche 1 Développement plus rapide indépendant de la cible maintenance du code vérification et estimation du comportement tâche 2 Système d exploitation... tâche n drivers Matériel

Plan 7 1. Contexte d un exécutif temps réel 2. Objectifs de Trampoline 3. OSEK/VDX 4. OSEK/OIL 5. Cas d utilisation 6. Dissémination

Objectifs de Trampoline 8 Développement basé sur la recherche académique et l enseignement. Objectif de portabilité couche d abstraction matérielle et nombreux portages Faible empreinte de mémoire (footprint) partages de contextes et piles. Séparation des structures de données noyau (partie statique en ROM, partie dynamique en RAM). Simplicité d utilisation Un environnement d exécution sur cible UNIX.

Plan 9 1. Contexte d un exécutif temps réel 2. Objectifs de Trampoline 3. OSEK/VDX 4. OSEK/OIL 5. Cas d utilisation 6. Dissémination

OSEK/VDX 10 Offene Systeme und deren Schnittstellen für die Elektronik im Kraftfahrzeug / Vehicle Distributed executive Industrie automobile et standard ISO Ensemble de spécifications OS COM NM OIL http://www.osek-vdx.org

OSEK/VDX 10 Offene Systeme und deren Schnittstellen für die Elektronik im Kraftfahrzeug / Vehicle Distributed executive Industrie automobile et standard ISO Ensemble de spécifications OS COM NM OIL http://www.osek-vdx.org

OSEK/VDX 10 Offene Systeme und deren Schnittstellen für die Elektronik im Kraftfahrzeug / Vehicle Distributed executive Industrie automobile et standard ISO Ensemble de spécifications OS COM NM OIL http://www.osek-vdx.org

OSEK/VDX OS 11 Fonctionnalités de base de l OS : Tâches Ressources (Immediate Priority Ceiling Protocol) Alarmes Services d interruption (ISR) Evénements Politique d ordonnancement à priorité fixe; L application est définie statiquement; Différentes classes de conformités proposées.

OSEK/VDX OS 11 Fonctionnalités de base de l OS : Tâches Ressources (Immediate Priority Ceiling Protocol) Alarmes Services d interruption (ISR) Evénements Politique d ordonnancement à priorité fixe; L application est définie statiquement; Différentes classes de conformités proposées. Approprié pour les systèmes embarqués temps réel de contrôle/commande

Les tâches OSEK 12 Les tâches sont les éléments actifs de l application 2 catégories de tâches dans OSEK/VDX: Les tâches basiques Les tâches étendues Une tâches basique: un code séquentiel (en C) qui doit se terminer code applicatif Appel système de terminaison de tâche mot-clé pour définir une tâche nom de la tâche TASK(tache1) { //instructions //de la tâche TerminateTask(); }

Les tâches OSEK 13 la tâche est inactive Terminate Suspended activate Running start Ready la tâche a le processeur preempt La tâche est prête (attente du processeur)

Plan 14 1. Contexte d un exécutif temps réel 2. Objectifs de Trampoline 3. OSEK/VDX 4. OSEK/OIL 5. Cas d utilisation 6. Dissémination

Déclaration d une tâche OSEK 15 Certains paramètres doivent être fournis: la priorité (qui est fixe); le mode de préemption (préemptif ou non); l état de la tâche au démarrage (suspended ou ready) le nombre maximales d activations Certains paramètres sont spécifiques à la cible: taille de pile: mémoire où sont stockées les variables locales, les retours des appels de fonctions imbriqués.

Implémentation des tâches dans Trampoline 16 Descripteur de tâche de Trampoline *static_desc *resources activate_count priority state evt_set evt_wait tpl_task context stack *entry id base_priority max_activate_count type void f(void) { } TerminateTask(); Les structures de données internes ne sont pas normalisées...

Implémentation des tâches dans Trampoline 16 Descripteur de tâche de Trampoline dépendant de la cible *static_desc *resources activate_count priority state evt_set evt_wait tpl_task context stack *entry id base_priority max_activate_count type void f(void) { } TerminateTask(); Les structures de données internes ne sont pas normalisées...

Implémentation des tâches dans Trampoline 16 Descripteur de tâche de Trampoline ROM *static_desc *resources activate_count priority state evt_set evt_wait tpl_task context stack *entry id base_priority max_activate_count type void f(void) { } TerminateTask(); Les structures de données internes ne sont pas normalisées...

Implémentation des tâches dans Trampoline 16 Descripteur de tâche de Trampoline ROM RAM *static_desc *resources activate_count priority state evt_set evt_wait tpl_task context stack *entry id base_priority max_activate_count type void f(void) { } TerminateTask(); Les structures de données internes ne sont pas normalisées...

OIL: Osek Implementation Language 17 Spécifie la structure de l application Configuration de l OS (section implementation) Description des objets (section application): Tâches interruptions Compteurs Alarmes Ressources Evénements Messages...

GOIL: compilateur OIL pour Trampoline 18 Compiler écrit en Galgas (générateur de compilateur) Fonctionne sous Unix et Windows Étendu pour la description des objets AUTOSAR

Déclaration d une tâche OSEK dans OIL 19 priorité statique de la tâche TASK matache { PRIORITY = 2; AUTOSTART = FALSE; ACTIVATION = 1; SCHEDULE = NON; STACKSIZE = 256; }; état de la tâche au démarrage de l OS: - READY si la AUTOSTART = TRUE - SUSPENDED si la AUTOSTART = FALSE Nombre maximal d activation (au delà, les activations ne sont pas enregistrées) mode d ordonnancement: - FULL: la tâche est préemptible - NON: la tâche n est pas préemptible Extension spécifique à la cible: la taille de la pile

Plan 20 1. Contexte d un exécutif temps réel 2. Objectifs de Trampoline 3. OSEK/VDX 4. OSEK/OIL 5. Cas d utilisation 6. Dissémination

Un exemple simple 21 2 tâches périodiques: Mets une sortie logique à 1 Allume une diode LED Le code utile de la tâche est une boucle d'attente active, Eteint la diode LED La sortie logique est remise à 0 C167 P7.0 P7.1 P2.10 P2.11 LED0 LED1 COMP0 COMP1

Un exemple simple 22 Structure fonctionnelle: action temporaire logicielle activatetask Tache1 COMP0 Alarm Task LED0 action permanente matérielle action temporaire logicielle activatetask Tache2 COMP1 Alarm Task LED1 action permanente matérielle

description textuelle OIL 23 COUNTER General_counter { TICKSPERBASE = 1; MAXALLOWEDVALUE = 255; MINCYCLE =1; }; TASK Tache1 { PRIORITY = 5; AUTOSTART = FALSE; }; définition des 2 tâches TASK Tache2 { PRIORITY = 3; AUTOSTART = FALSE; }; ALARM Active_Tache1 { COUNTER = General_counter; ACTION = ACTIVATETASK { TASK = Tache1; }; AUTOSTART = TRUE { ALARMTIME = 1; CYCLETIME = 5; APPMODE=std; }; définition des 2 alarmes }; ALARM Active_Tache2 { COUNTER = General_counter; ACTION = ACTIVATETASK { TASK = Tache2; }; AUTOSTART = TRUE { ALARMTIME = 1; CYCLETIME = 5; APPMODE=std; }; };

Code applicatif 24 TASK(Tache1) { volatile int i; COMP0 = 1; LED0 = 1; for (i=0; i<6700; i++); LED0 = 0; COMP0 = 0; TerminateTask(); } int main(void) { inites(); StartOS(OSDEFAULTAPPMODE); } tache1 Suspended Running Suspended tache2 Suspended Ready Running Suspended

Plan 25 1. Contexte d un exécutif temps réel 2. Objectifs de Trampoline 3. OSEK/VDX 4. OSEK/OIL 5. Cas d utilisation 6. Dissémination

Utilisation pédagogique 26 IUT de Nantes - GEII - cours MCII2; Licence Pro (Nantes, Rennes); École d ingénieur (Angers, Toulouse); Mastère à Nantes il est aisé de moduler la difficulté en intervenant sur le niveau de conception; nombreux portages: l'arm7 (Arm), l'avr (Atmel), le H8300h (Hitachi), S12X (Freescale), PowerPC 565 (Freescale), C167 (Infineon) et le V850e (Nec)... et POSIX (Linux, MacOSX,...)

Outil de recherche / valorisation 27 projets O4A - O4A phase 2 intégré dans l offre commerciale de Geensys tests fonctionnels réalisés par Kereval partenariat avec le LAAS/Renault travaux concernant la robustesse des systèmes embarqués l ANR Scarlet Utilisation par Trialog (robustesse) Ordonnancement feedback scheduling

Conclusion 28 Présentation de OSEK/OS et OIL facilité de mise en oeuvre Trampoline est une implémentation du standard OSEK/VDX logiciel libre (GNU LGPL / BSD) Portable Valorisé au niveau enseignement, recherche et valorisation.

Conclusion 28 Présentation de OSEK/OS et OIL facilité de mise en oeuvre Trampoline est une implémentation du standard OSEK/VDX logiciel libre (GNU LGPL / BSD) Portable Valorisé au niveau enseignement, recherche et valorisation. http://trampoline.rts-software.org

Conclusion 28 Présentation de OSEK/OS et OIL facilité de mise en oeuvre Trampoline est une implémentation du standard OSEK/VDX? logiciel libre (GNU LGPL / BSD) Portable Valorisé au niveau enseignement, recherche et valorisation. http://trampoline.rts-software.org

How to use Trampoline 29 VIPER : Virtual Processor. Ease of use of a Unix based execution environment. Host machine Task1 Task 2 Trampoline OSEK kernel... Tn IT VIPER VIrtual Processor EmulatoR UNIX based Host Operating System (Mac OS X, Linux,..) Unix process POSIX signal IT OSEK application tasks Interrupt handler of Trampoline