Chaîne de développement : Compilation croisée



Documents pareils
REALISATION d'un. ORDONNANCEUR à ECHEANCES

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

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

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

Introduction au temps réel

Construction et sécurisation d'un système Linux embarqué. Frédéric AIME

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

Introduction aux systèmes temps réel. Iulian Ober IRIT

Systèmes embarqués D.Rossier

Linux embarqué: une alternative à Windows CE?

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

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

NFP111 Systèmes et Applications Réparties

RTDS G3. Emmanuel Gaudin

Virtualisation de serveurs Solutions Open Source

Éléments d'architecture des ordinateurs

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

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

Modélisation des interfaces matériel/logiciel

Introduction aux Bases de Données Relationnelles Conclusion - 1

Cours 3 : L'ordinateur

Spécialité Professionnelle. Patrick Boulandet

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

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

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Limitations of the Playstation 3 for High Performance Cluster Computing

Évaluation et implémentation des langages

Xen. Quelques notes autour de Xen

1 Mesure de la performance d un système temps réel : la gigue

Installation et prise en main

Les modules SI5 et PPE2

Fiche technique CPU 315SN/PN (315-4PN33)

ERESI : une plate-forme d'analyse binaire au niveau noyau. The ERESI team

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

Le concept de virtualisation regroupe

Integrated Modular Avionic

Contrôler et mesurer via des liaisons non permanentes!

Conservation des documents numériques

Intervenants. Thomas d'erceville Project Manager. Christian NGUYEN Practice Manager IT Quality

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.

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

IV- Comment fonctionne un ordinateur?

Traitement de données

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

Thème 3 Conception et vérification d architectures de systèmes sur puce

LA GESTION DES SOLUTIONS TECHNIQUES D ACCÈS

Data Station Plus. La solution complète de gestion de données. > Convertisseur de multiples

«Connais toi toi-même comme l as dit Socrate!»

CLAIRE, UN OUTIL DE SIMULATION ET DE TEST DE LOGICIELS CRITIQUES. Jean GASSINO, Jean-Yves HENRY. Rapport IPSN/Département d'évaluation de sûreté N 280

La technologie Java Card TM

CH.3 SYSTÈMES D'EXPLOITATION

en version SAN ou NAS

Communications performantes par passage de message entre machines virtuelles co-hébergées

La Virtualisation Windows chez CASINO. Philippe CROUZY Responsable Infrastructure Equipes Systèmes -Stockage

Contributions à l expérimentation sur les systèmes distribués de grande taille

Systèmes d exploitation

Concept de machine virtuelle

Services OSI. if G.Beuchot. Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique

vbladecenter S! tout-en-un en version SAN ou NAS

Prototypage électronique

PIC EVAL Dev Board PIC18F97J60

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

L informatique en BCPST

ELP 304 : Électronique Numérique. Cours 1 Introduction

RESEAUX MISE EN ŒUVRE

CAHIER DES CHARGES D IMPLANTATION

Environnements de développement (intégrés)

Oracle Fusion Middleware Concepts Guide 11g Release 1 (11.1.1) Figure 1-1 Architecture Middleware

Conception des systèmes répartis

ÉCOLE POLYTECHNIQUE DE MONTRÉAL. Département de Génie Électrique. La technologie de TEXAS INSTRUMENTS DSP pour le cours Analyse des Signaux ELE2700

2009/2010 DESCRIPTIF DES UNITES D ENSEIGNEMENT OPTIONNELLES SPECIALITE RIM

VMWare Infrastructure 3

Systèmes et traitement parallèles

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Utilisation des services vocaux en Centre d'appels

TD/TP 1 Introduction au SDK d Android

A propos de la sécurité des environnements virtuels

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)

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Etude d architecture de consolidation et virtualisation

Leçon 1 : Les principaux composants d un ordinateur

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

Pré-requis techniques. Yourcegid Secteur Public On Demand Channel

Performance et usage. La différence NETGEAR - R7000. Streaming HD illimitée

CLIENTS LÉGERS. Remote Desktop Services Linux Terminal Server Project

Dossier. Développer en Java sur téléphone mobile. Benjamin Damécourt UFR SITEC Master 2 EESC 11 janvier 2012

Initiation au HPC - Généralités

MEAD : temps réel et tolérance aux pannes pour CORBA

Architecture des ordinateurs

FOG : Free Open-Source Ghost. Solution libre de clonage et de déploiement de systèmes d'exploitation.

Hubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02)

Adresse directe fichier : Adresse url spécifique sur laquelle le lien hypertext du Client doit être

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Assurez-vous que votre site est conforme aux caractéristiques suivantes avant la date d'installation.

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

ORDONNANCEMENT CONJOINT DE TÂCHES ET DE MESSAGES DANS LES RÉSEAUX TEMPS RÉELS 4. QUELQUES EXEMPLES DU DYNAMISME ACTUEL DU TEMPS RÉEL

Transcription:

Chaîne de développement : Compilation croisée Principe d'une chaîne de développement Dépendances entre processus de «production» et architecture opérationnelle Compilation croisée, MDE et génération de code Déploiement et analyse page 1

Objectifs du cours Chaîne de développement et position du compilateur dans la chaîne Architecture en couche d'un Système Embarqué (bibliothèques de programmation et support d'exécution) Production du système et compilation croisée Test, Validation et Vérification du système déployé Problématiques de déploiement Bilan page 2

Chaîne de développement et Compilation page 3

Processus de développement et outils... Rôle des outils : Supporter le processus de développement Les tâches du processus : Spécifier / vérifier Développer / mettre au point Intégrer / tester & valider Déployer / maintenir et observer. Remarque : la nature et le déroulement des tâches dépend du cycle de développement retenu page 4

Processus de développement pour applications «bureautiques» On développe souvent la où l'on exécute! Quasiment aucun problème de dimensionnement (Mythe des ressources infinies) => spécification fonctionnelle == documentation => déploiement à coût ~ 0 => Validation du produit par des outils tiers lancés en parallèle sur l'os (gdb, valgrind, ) Ce qui compte en embarqué temps réel : Dimensionnement strict (e.g. temporel) Il faut développer et compiler sur A et exécuter sur B page 5

La structure usuelle d'un environnement de développement 5 composants élémentaires : Un éditeur pour la rédaction de la spécification Un éditeur pour le développement Une chaîne de compilation Un outil de test et/ou déboggage Un outil de déploiement En pratique : Modularité & configuration Des front-end uniformes (IDE, ou M2M processor) (Eclipse, emacs... Rapid ) Des back-end spécifiques au matériel (ld, ar, binutils) page 6

Architecture des Systèmes Embarqués et Chaîne de production page 7

Vue macroscopique (rappel) optionnel obligatoire Noyau application intergiciel Service Système Syst. Fichier, Gestion d'énergie... Interface de programmation du support matériel (BSP) Matériel pilotes A chacun son API et ses modules!! Commande / contrôle d'un véhicule logique de calcul RT-corba sshd, ftp, file systems Interface % services «coeur» OS (API RTEMS, API POSIX, «device») Interface % services matériels (Changement de contexte, IT... ) MPC680 page 8

Un exemple de système embarqué Calculateur pour SCADA (supervisory control and data acquisition) : SPIF (Telecom ParisTech) Entrées/Sorties : 9 types différents mais pas de clavier... CPU : MPC860, 64Mb RAM Stockage : 8 Mb ROM Utilisation : Contrôle d'un robot mobile Programmation : RTEMS & Linux API page 9

Fonction et déroulement de la compilation Etapes du processus de compilation Génération de l'exécutable Génération du code «assembleur» Compilation Compilation du code assembleur en code objet binaire.c.asm.asm.o Edition de liens - Création de l'image binaire complète - Instanciation des références aux bibliothèques statiques et dynamiques. page 10

Rappel sur l'édition de lien et la compilation séparée Permet d'assembler une application par modules: (interface de prog. du matériel, de l'os, du middleware) test.o mabib.o @+0 mabib.o @ + test.o ' stdio.o stdio.o ou pcmcia.o @ + + ' stdio.o Le principe reste le même : l'exécutable est un patchwork de bloc MAIS il faut qu'ils soient tous exécutables sur la cible... page 11

Edition de liens bilan Contenu des.o = code binaire Dépend du processeur Dépend du compilateur (plusieurs formats e.g. ELF) Les modules de la compilation séparée Modules applicatifs (conception modulaire) Les bibliothèques de programmation (Matériel, OS, middleware). Ce qui est fait : Juxtaposition des différents modules et transformations des adresses de références Le résultat : un fichier contenant un binaire complet exécutable page 12

Interfaces de programmation et environnement de compilation L'environnement de compilation => le compilateur ( code source & support d'exec) => l'accès aux modules implémentant les interfaces Les interfaces de programmation imposent un format de fichiers objets (binaires linkables) API d'interaction avec le matériel (drivers) API du système d'exploitation (appels systèmes) API de services de + haut niveau => L'intégration de ces éléments dépend du matériel La chaîne de développement doit aider le processus d'intégration de l'application sur le support d'exécution page 13

La vision MDE, Modèle de composants & langages dédiés Idée : Décrire l'implémentation avec des modèles AADL Signal, Lustre Valider le comportement à travers des raisonnements logiques explicites Modèles de tâches et Ordonnancement Flots de données et simulation numériques Outils associés aux langages dédiés Mathlab/Simulink Sigali Polychroni (SIGNAL) page 14

Lien entre modéles validés et le produit final Les modèles == entrée des chaines de production Architectures à base de composants avec interfaces explicites pb : il faut obtenir le code implémentant le comportement des modèles Chaîne de production fiable == production automatique de l'application finale à partir des modèles AADL Ada Ravenscar via Ocarina. (intégration) LUSTRE C via LUSTRE V4 + LESAR tool box (comportement complet) page 15

La compilation croisée et BSP (lib) page 16

Développer sur A, exécuter sur B? Développement Compilation Pilotage de tests Exécution opérationnelle Déboggage Exécution de tests page 17

Compilation croisée : le compilateur Ses contraintes : S'exécute sur A et Génère du langage machine pour B Doit identifier l'emplacement des bibliothèques pour B Doit construire une «image» compatible aux capacités de B (communication, stockage, structure...) En pratique Pour la production du binaire: le type de processeur et la méthode d'encodage comptent énormément. Le résultat de la compilation est indépendant de A La manipulation des fichiers binaires est spécifique à B page 18

Compilation croisée : les bibliothèques C'EST LE COEUR DU PROBLEME Dépendances & contraintes multiples : Dépendances fonctionnelles API API Dépendances au matériel (assembleur, ressources) Pb de dimensionnement Conseils : Privilégier le code source pour les couches hautes Limiter l'usage de l'assembleur spécifique dans les couches les + basses (e.g. Le BSP) Garder la trace de la cible et des compilateurs utilisés page 19

Contenu et rôle du BSP (board support package) Objectif : fournir une interface entre OS et matériel Permettre à l'os d'utiliser les ressources matérielles (interruptions, registres, MMU, ports matériels...) Concentrer la majorité du code ultra spécifique dépendant du matériel utilisé (code assembleur, accès aux registres, à l'horloge) Intégration OS / BSP : Hardware Abstract Layer interface visant à uniformiser l'accès au matériel dans un Noyau L'OS définit son propre HAL «à remplir» Implémenter un HAL standard (utilisé par l'os). page 20

BSP et RTEMS RTEMS a son propre HAL pour lequel il faut remplir les squelettes Chaque fonction a une spécification informelle avec une signature Des exemples d'implémentation sont disponibles pour différents matériels (ex. Guide RTEMS-BSP) HAL modulaire % architecture matérielle classique Changement de contexte, timers, I/O (manipulation des registres, et interruptions) Port série, réseau... page 21

A retenir Chapitre I, II, III La compilation dans 1 processus de production Des outils réutilisables mais complexes => notion d'environnement de compilation (= conf) => Approche MDE et génération de code Etapes de constitution de l'environnement : 1 ) obtenir la chaîne de production pour le processeur 2 ) S'interfacer avec le système pour déployer le logiciel COMMENT? page 22

Déploiement, Test et Mise au point page 23

Chargement et interfaces Interfaces de chargement Réseaux Mécanique (intégration stockage de masse) Pb : Quand ces interfaces sont elles actives? Activation matérielle Activation logicielle IL FAUT COMPRENDRE COMMENT UN SYSTEME SE LANCE page 24

Mode interactif vs automatique Chargement hors-ligne vs en-ligne : Ex 1 : carte flash physiquement déplacée Ex 2 : connexion réseau + protocole de chargement (TP) avec attente Type de la mémoire du support de stockage (ROM/RAM/stockage de masse) Les deux doivent être supportés car cela correspond aux deux phases du développement Mise au point Vie opérationnelle page 25

page 26 Comment un calculateur démarre? (et justification du terme «bootstrap») Exécution du micro-logiciel et moniteur Test Mise en service des périphériques Amorçage depuis le stockage de masse (SM) ou réseau (R) Exécution de l'amorce Configuration des couches du Syst. Logiciel Chargement du noyau / de l'applcationi 1 2 3 4 : ça marche

Comment un système démarre : le moniteur Rôle : 1) Diagnostic et initialisation des fonctions du matériel 2) interface basique de commande du matériel dont fonctions de chargement et exécution de code (placé en mémoire) Implémentation (dépend du matériel) http://penguinppc.org/embedded/howto/rom-monitor.html Les fonctions usuelles en plus : Protocole de chargement réseau ou série Mécanismes d'observation / debug et audit Contraintes : doit tenir sur la ROM du matériel. page 27

Bootloader Rôle : assure le passage entre le micrologiciel embarqué et l'os Etapes : Chargement de systèmes de fichier + élaborés Chargement de fonctions d'audit (par hyperviseur) Configuration dynamique et initialisation de l'os (laisse la main à l'os à partir de là) Principe : on y met tout ce que l'on ne peut mettre dans le micrologiciel et qui sert à lancer l'os. En pratique: fusion du micrologiciel et du bootloader (ex PPCBOOT) page 28

Exemple RTEMS + MPC860 (PPCBOOT) 1 Distribution RTEMS 1 BSP pour MPC860 standard 1 rack de cartes MPC860 (accessible depuis Xuri) Méthode de chargement : réseau liaison série-ethernet Protocole de communication Hôte / cible : synchrone-asynchrone page 29

Dimensionnement et réflexion globale page 30

Dimensionner, c'est quoi? Comprendre les contraintes matérielles : Mémoire /CPU Temps de réponse Autres... horloges, bus de communication.. Définir à partir des exigences fonctionnelles, des exigences de ressources L'asservissement d'un moteur par une application doit s'exécuter à une période de 10ms => une tache périodique à 10 ms PB: il faut s'assurer que c'est faisable en fonction du traitement page 31

Ce qui influence le WCET? Double dépendance : architecture et du code binaire Le code binaire Définit le chemin d'exécution (implémentation des fonctions, complexité effective des traitements) Définit le modèle d'exécution (parallélisme, tâches) L'architecture matérielle Latence d'accès à la mémoire, pipeline, et pre-fetch Fréquence d'horloge WCET : mesures ou estimations analytique? Pas de solution miracle page 32

WCET : vision analytique et vision empirique Analytique : Call graph et ETU: Animation d'un automate pour générer une séquence d'exécution Interprétation de la séquence pour calcul du WCET Empirique : Contrôle de la plateforme d'exécution pour activation des pires scénarios d'exécution Mesure : (oscillo ou logicielle ) page 33

Conclusion page 34

Pour faire le point La chaine de compilation croisée == le coeur de la chaîne de production et déploiement du logiciel Le matériel == un processeur et des PI chacun influence l'environnement de compilation Processeur instruction et assembleur spécifique La carte périphériques et services matériels (MMU, réseau, interruption, DMA...)=> API dédiée Le dimensionnement phase clé de la conception (Pas de solution exacte totalement fonctionnelle) page 35