Portage d'Asterios RTK MPC5777M, démonstrateur aéronautique, soutenance, Krono-Safe, éditeur de logiciel, impact projet, driver Ethernet, contextualisation, Asterios, développement, Schneider Electric, Alstom, Safran, RSF Representational Sequence of Frames, portage, normes IEEE
Ce document est une présentation pour une soutenance de stage dans une entreprise d'éditeur de logiciel.
[...] Portage d'Asterios RTK MPC5777M sur GCC et mise en place d'un démonstrateur aéronautique Introduction Présentation de Krono-Safe Contextualisation du projet Portage du noyau MPC5777M sur GCC Implémentation d'un driver Ethernet Devenir & impact du projet Gestion de projet Conclusion Plan ◆ Stage du 3 avril au 28 septembre 1. Introduction ◆ Krono-Safe, éditeur de logiciel (équipe Embarqué) ◆ Problématique double ◆ Portage du noyau Asterios RTK MPC5777M sur GCC ◆ Mise en place d'un démonstrateur aéronautique Présentation de Krono-Safe Présentons brièvement l'activité et l'organisation de l'entreprise 4 Généralités sur Krono-Safe ◆ Création en 2011 par essaimage du CEA ◆ Basée à Orsay (IncubAlliance) ◆ Nouvelle solution de développement d'applications temps réel critiques (Asterios) ◆ Organisation du pôle Ingénierie en fonction des produits ◆ Clients : Schneider Electric, Aptiv (Delphi), Alstom, Safran, etc Technologie Asterios Concepts Psy/Khi ◆ Nouveau formalisme de synchronisation temporelle ◆ Concepts Psy ◆ ◆ ◆ ◆ ◆ Tâches (agents) Cadencement (PSTs) Budgets Canaux de communication (VTs) Principe de visibilité ◆ Concepts Khi ◆ ◆ 6 Tâches (workers, jobs) Communication agents/matériel ◆ Langages synchrones (PsyC/KhiC) compilés avec Psyko Asterios Kernel (AsteK) ◆ Micro-noyau temps réel ◆ Exécution d'une application Psy sur une cible ◆ Ordonnancement statique ◆ Structure ◆ ◆ Partie générique : k2-core Partie spécifique : Board Support Package 0 (BSP0) Representational Sequence of Frames (RSF) horloge 7 Exemple d'application PsyC 1re Démonstration Contextualisation du projet Replaçons le projet dans son contexte économique, technologique et matériel 9 Contexte du projet Économique ◆ 1er portage MPC5777M réalisé sur Diab ◆ Démonstrateur aéronautique ◆ 10 Fonctionnement du noyau pour une carte de type ARM (i.MX6) Technologique ◆ Technologie Asterios ◆ Démonstrateur aéronautique Simulateur de vol pour un drone ◆ Outils Scade et Asterios ◆ Matériel ◆ Microcontrôleur MPC5777M (NXP) ◆ Architecture PowerPC (PPC) 32 bits ◆ Cible multi-cœurs ◆ Sonde de debug TRACE32 (Lauterbach) Démonstrateur aéronautique 11 Affichage cockpit (à gauche) et panneau de contrôle (à droite) 4. [...]
[...] Portage du noyau MPC5777M sur GCC Détaillons la réalisation du portage, de l'étude du BSP0 à la validation du portage 12 Importance de la généricité ◆ Langages : Assembleur ◆ Généricité multi-plateforme AsteK ◆ Architecture (PPC, ARM, Aurix) ◆ Microcontrôleurs (mono/multi-cœur(s), architecture mémoire, périphériques) ◆ Généricité multi-compilateur ◆ Outils ◆ Norme ANSI C ◆ Embedded Application Binary Interface (EABI) ◆ Linker script généré 13 K2-core BSP0 Arch Board Choix du compilateur et des options ◆ Cross-compilateur powerpc-eabivle-gcc (NXP – GCC 4.9.4) ◆ Implémentation de l'EABI de PPC (VLE) ◆ Support des processeurs e200 ◆ Options utilisées 14 Action Options Compilation -mcpu=e200z7, -mvle, -meabi, -mno-sdata, -Wall, -fno-common, -mstrictalign, -falign-functions=8, -falign-jumps=8, -falign-loops=8, -falign-labels=8, -mhard-float, -mfloat-gprs=single, -fno-jump-tables, -gdwarf-2 Assemblage -me500mc, -mvle, -mregnames, –gdwarf-2 Édition de lien -oformat< format >, -T< script >, -nostartfiles, -nostdlib Différences entre Diab et GCC ◆ Syntaxe assembleur ◆ Assembleur « en ligne » ◆ Macros ◆ Syntaxe linker script ◆ Niveau de découpage supplémentaire pour Diab (groupes) ◆ Mots-clés spécifiques ◆ Binaire généré ◆ Table de programme générée par Diab erronée (adresse de chargement) 15 Difficultés rencontrées 16 Contexte Problème Solution choisie Table de programme erronée pour Diab Table des sections et relocalisation à la main Retour au fonctionnement standard Jump tables dans les blocs switch Protection mémoire Option -fno-jump-tables Bug GCC Propagation de la relocalisation Indication de la LMA et la VMA Bug GCC Traduction VLE (branchement) Traduction à la main Traduction VLE (16 bits) Alignement Ajout de se_nop Bug GCC Instruction wait Remplacement par l'opcode Portage du BSP0 (MPC5777M) ◆ Ajout du support de GCC au BSP0 ◆ Nouveau compilateur ◇ ◇ Ajout du template du linker script pour GCC Modification des fichiers compilo-dépendants ◆ Nouvelle variante de configuration ◇ ◇ Basée sur une variante principale Utilisant le compilateur GCC et les options choisies ◆ Validation ◆ Validation du fonctionnement avec TRACE32 ◆ Intégration finale avec la chaîne d'outils Asterios 17 Exemple d'utilisation du portage 2nde Démonstration Implémentation d'un driver Ethernet Détaillons la conception puis la réalisation d'un driver Ethernet pour les cartes de type MPC5777M 19 Protocole Ethernet ◆ Normes IEEE 802 ◆ Adressage logique (LLC) ◆ Interface MAC – PHY (MII) ◆ Protocole CSMA/CD (norme 802.3) ◆ Transmission sur un médium partagé (« Multiple Access ») ◆ Écoute du support pour savoir s'il est libre (« Carrier Sense ») ◆ Détection des collisions (« Collision Detection ») 20 Contrôleur Ethernet Fonctionnalités i.MX6 MPC5777M Full-duplex Loopback interne/externe Filtrage des trames reçues Horodatage des trames Interfaces MII supportées o o o o 21 MII standard 10/100 Mbit/s RMII 10/100 Mbit/s RGMII 10/100/1000 Mbit/s SNI 10 Mbit/s API du driver Ethernet API initiale (i.MX6) ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ 22 Initialisation du driver Démarrage du contrôleur Préparation d'une trame Envoi d'une trame Réception d'une trame Lecture du statut du PHY Récupération des événements Initialisation du timer d'horodatage Lecture du compteur d'horodatage Lecture du timestamp d'une trame API simplifiée (MCP5777M) ◆ ◆ ◆ ◆ Initialisation du driver Envoi d'une trame Réception d'une trame Filtrage des trames reçues Structure du driver Ethernet ◆ Partie générique ◆ APIs publique et secondaire ◆ Gestion des trames ◆ Paramètres et structures de données partagés ◆ Partie spécifique ◆ Horloges ◆ MAC ◇ Signaux, descripteurs, MII ◆ PHY ◆ Librairies 23 Fonctionnement du driver Ethernet Initialisation du driver ◆ Modification des permissions ◆ Initialisation des horloges ◆ Initialisation du contrôleur Ethernet ◆ Initialisation du PHY Envoi d'une trame ◆ ◆ 24 Préparation des buffers contenant les entêtes et les données Envoi de la trame Filtrage des trames reçues Spécification de l'adresse MAC utilisée par le protocole ARP pour filtrer les trames. Réception d'une trame ◆ Réception de la trame ◆ Extraction des données 6. [...]
[...] Gestion de projet Présentons la méthode de travail ainsi que le déroulement du projet 29 Méthode de travail ◆ Points stage 1/semaine ◆ Présentations (technologie Asterios) ◆ Réunions de sprint toutes les 3 semaines (méthode Agile) ◆ Bitbucket (travail terminé) ◆ Dépôt partagé (rapports intermédiaires, mémoire) 30 Planning prévisionnel Asterios Avril Familiarisation avec le projet Technologie Asterios Architecture AsteK Portage MPC5777M sur GCC Réalisation Validation Démonstrateur aéronautique Conception des cas d'utilisation Driver Ethernet Intégration des cas d'utilisation Documentation & packaging Mémoire 31 AsteK Mai GCC/EABI PPC Juin Juillet Mémoire Août Septembre Déroulement réel Asterios AsteK GCC/EABI PPC Avril Familiarisation avec le projet Technologie Asterios Architecture AsteK Portage MPC5777M sur GCC Prototype BSP0 Validation Démonstrateur aéronautique Driver Ethernet Intégration des cas d'utilisation Documentation & packaging Mémoire 32 Mai Juin Mémoire Juillet Août Soutenance Septembre ◆ 1er objectif atteint ◆ Portage validé 8. [...]
[...] Conclusion ◆ 2nd objectif en cours ◆ Driver à valider ◆ Cas d'utilisation à intégrer ◆ Familiarisation* avec l'architecture PPC et le protocole Ethernet, chaine de compilation (linker, ) ◆ Impact économique ◆ Confirmation du projet professionnel 33 ? “ Merci de votre attention Avez-vous des questions ? [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture