Application au cas OSEK-VDX

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

Ordonnancement temps réel

Mécanismes de protection dans AUTOSAR OS

REALISATION d'un. ORDONNANCEUR à ECHEANCES

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

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

Maarch Framework 3 - Maarch. Tests de charge. Professional Services. 11, bd du Sud Est Nanterre

Projet Active Object

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

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

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

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

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

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

Introduction aux algorithmes répartis

Enjeux et perspectives des logiciel temps réel critiques dans l automobile :

Architecture de la grille

Conception des systèmes répartis

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Validation temporelle de réseaux embarqués critiques et fiables pour l automobile

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

INSTRUMENTS DE MESURE SOFTWARE. Management software for remote and/or local monitoring networks

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Le multiplexage. Sommaire

Introduction à l informatique temps réel Pierre-Yves Duval (cppm)

DG-ADAJ: Une plateforme Desktop Grid

Cours de Systèmes d Exploitation

Programmation temps-réel Cours 1 et 2 Introduction et ordonnancement

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

Note d Application. Bascule d ALOHA via injection de route en BGP

Opportunités s de mutualisation ITIL et ISO 27001

Architecture distribuée

Pratiques induites par les réunions à distance : discours, identités et organisation des actions

Integrated Modular Avionic

Le No.1 de l économie d énergie pour patinoires.

Software Engineering and Middleware A Roadmap

Haka : un langage orienté réseaux et sécurité

Chapitre 4 : Exclusion mutuelle

SNMP for cloud Jean Parpaillon. SNMP4cloud - 1

Introduction à la programmation concurrente

Bienvenue sur Lab-Windows Il n'y a de vents favorables que pour ceux qui ont un cap

Initiation au HPC - Généralités

Synchro et Threads Java TM

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

NFP111 Systèmes et Applications Réparties

Les systèmes de base de données temps réels. Pokrovskaya Natalia, Kabbali Nadia

Ordonnancement temps réel

DAns un système multi-utilisateurs à temps partagé, plusieurs processus

Programmation d'agents intelligents Vers une refonte des fils de raisonnement. Stage de fin d'études Master IAD 2006

Projet gestion d'objets dupliqués

Extension d'un outil de trace pour système embarqué temps réel. Encadrants : Laurent Pautet, Jérôme Hugues

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

Prérequis. Résolution des problèmes WMI. Date 03/30/2010 Version 1.0 Référence 001 Auteur Antoine CRUE

Modélisation et évaluation de performance des systèmes basés composants

Cours de Génie Logiciel

Modélisation des interfaces matériel/logiciel

Configuration automatique

TD2 Programmation concurrentielle

Surveillance et maintenance prédictive : évaluation de la latence de fautes. Zineb SIMEU-ABAZI Univ. Joseph Fourier, LAG)

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

L art d ordonnancer. avec JobScheduler. François BAYART

Introduction au temps réel

Solution logicielle pour le pilotage et l ERM. Journées d études IARD 26 mars mars 2010

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

PROGRAMMATION EVENEMENTIELLE sur EXCEL

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

Introduction aux systèmes temps réel

Completed Projects / Projets terminés

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

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Modules du DUT Informatique proposés pour des DCCE en 2014/2015

PocketNet SNMP/Modbus

Couche application. La couche application est la plus élevée du modèle de référence.

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Analyse du temps de réponse des systèmes temps réel

Lantech -Switch EN50155

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

La Continuité d Activité

Virtualisation & Sécurité

Ré-ordonnancement adaptatif de messages dans un réseau ad hoc de véhicules

Résumé CONCEPTEUR, INTEGRATEUR, OPERATEUR DE SYSTEMES CRITIQUES

Réseaux. DNS (Domaine Name System) Master Miage 1 Université de Nice - Sophia Antipolis. (second semestre )

VTP. LAN Switching and Wireless Chapitre 4

LOG4430 : Architecture et conception avancée

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

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters AVANTAGES

Exercice : configuration de base de DHCP et NAT

Programmation parallèle et distribuée

Orchestrer son cloud OpenStack avec Heat

Qualité du logiciel: Méthodes de test

NOTICE INSTALLATION. ARCHANGE WebDAV Office N&B/Couleur KONICA MINOLTA BUSINESS SOLUTIONS FRANCE

Introduction à OPC. OPC est une spécification récente mais qui a rapidement évolué car elle est bâtie sur la spécification COM/DCOM.

JOURNEES SYSTEMES & LOGICIELS CRITIQUES le 14/11/2000. Mise en Œuvre des techniques synchrones pour des applications industrielles

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur Le 23 novembre 2012

Université de La Rochelle. Réseaux TD n 6

RTDS G3. Emmanuel Gaudin

Transcription:

Systèmes d exploitation temps réel - Application au cas OSEK-VDX Yvon Trinquet IRCCyN - UMR CNRS 6597 École Centrale de Nantes, École des Mines de Nantes Université de Nantes Équipe «Systèmes Temps Réel» Yvon.Trinquet@irccyn.ec-nantes.fr 1

Plan Généralités Le noyau temps réel OSEK/VDX OS La communication OSEK/VDX COM Évolutions, modèles d application 2

Exemple d architecture fonctionnelle (ou logicielle) d une application Nmax_A Nmin_A CTRL_Bac_A Valim_A Nmax_B Nmin_B CTRL_Bac_B Valim_B Ordre_Fab Req_Fab Utilisateur Superviseur Etat_Fab CR_Fab Req_Pains Niveau_C Mot_H D_Pain CTRL_TR Fin_Pains CTRL_Bac_C Vvid_B Vvid_A Mot_TR Nmax_C Vvid_C Légende : Evénement : Variable partagée : Boîte aux lettres : une action 3

Quelle implémentation? choix de la configuration matérielle contraintes topologiques contraintes de sûreté de fonctionnement contraintes temporelles lien «Tâche Événement activeur» approche «synchrone» approche «asynchrone» 4

la démarche synchrone : Hypothèse «temps nul» pour les calculs et les réactions Simultanéité possible des événements Cadre formel vérification formelle mais le «monde» est asynchrone la démarche asynchrone : Les calculs prennent du temps Les événements ne sont jamais simultanés Il faut accepter la préemption et ordonnancer, protéger les ressources partagées Modèles beaucoup plus complexes, plus durs à vérifier Un support d exécution : l exécutif temps réel 5

Types d exécutifs les exécutifs «généralistes» beaucoup de produits commerciaux (VxWorks ) un standard OSEK-VDX pour de petits systèmes embarqués les exécutifs Unix TR approche Posix (standards IEEE) : extensions temps réel pour Unix (ordonnancement, sémaphores, multi-threads ) approche Linux temps réel : RT-Linux, RTAI les exécutifs «recherche» : Mars (Kopetz), Spring kernel (Stankovic), ARTS (Lehoczky) 6

L exécutif et l application Application mesures Tâche Tâche Tâche Tâche commandes Interface machine Appels de services virtuelle d'exécution horloge événements issus du procédé Agence de gestion du temps Agence de gestion des événements Agence de gestion des tâches (Interruptions) Ordonnanceur Exécutif 7

contexte d OSEK/VDX (1) celui de «l électronique» embarquée dans les véhicules contraintes temps réel (dures et souples) : (powertrain, chassis, body, telematics) sûreté de fonctionnement élevée mais mission en principe interruptible avènement du X by Wire 8

contexte d OSEK/VDX (2) support matériel minimal (peu de RAM, ECU 8 et 16 bits) architecture distribuée autour de réseaux : CAN, LIN puis TTP/C, FlexRay fonctions transversales : inter-opérabilité des sous-systèmes pour réaliser la fonction flexibilité de l architecture : ajout de fonctions, portabilité et réutilisabilité des fonctions logicielles) Et tout cela au moindre coût! 9

OSEK/VDX : historique Proposition du groupe OSEK, constitué : de constructeurs (BMW, DaimlerChrysler, Renault, PSA, etc.) d équipementiers (Bosch, Siemens, etc.) d universitaires (Univ. Karlsruhe) Fusion des projets OSEK (Allemand) et VDX (GIE PSA-Renault) Travaux commencés en 1995 pour OSEK, vers 1992 pour VDX 10

OSEK/VDX : OSEK/VDX OS version 2.2, septembre 2001 noyau du système d exploitation OSEK/VDX COM version 3.0.1, janvier 2003 services pour la communication OSEK/VDX NM version 2.5.1 Mai 2000 gestion et surveillance du réseau OSEK/VDX OIL version 2.4.1 janvier 2003 langage de description des applications Le site Web de référence : http:// www. osek-vdx. org 11

Le noyau temps réel OSEK-VDX OS 12

Principaux services d OSEK/VDX OS Services pour les tâches Services de synchronisation (événements) Services d exclusion mutuelle Services pour les phénomènes récurrents (compteurs et alarmes) Service pour la communication (dans OSEK/VDX COM) Services pour la gestion des interruptions Services systèmes et gestion des erreurs Tous les objets sont statiques : - pas de création dynamique d objets - pas de suppression dynamique d objets 13

Les tâches (1) Tâche = objet actif de l application La tâche «Basique» : module sans point bloquant doit se terminer 3 états : suspended / ready / running activations multiples : mise en file des requêtes d activation si la tâche est active (pas d instanciation) Running La tâche a le processeur terminate Diagramme des états preempt start Suspended La tâche est inactive Ready activate La tâche est inactive 14

Les tâches (2) Task T1 { Activate (T2) TerminateTask () } ActivateTask TerminateTask ChainTask Schedule Task T3 { TerminateTask () } Task T2 { ChainTask (T3) } + d autres services 15

Les tâches (3) La tâche «Étendue» : un ou plusieurs modules peut attendre une occurrence d événement 4 états : waiting en plus Diagramme des états wait Running La tâche a le processeur terminate La tâche est en attente Waiting preempt start Suspended La tâche est inactive release Ready activate La tâche est inactive 16

ordonnancement (1) Les tâches (4) priorité fixe non modifiable (la valeur 0 est la plus faible priorité) 3 modes d ordonnancement : préemptif : toutes les tâches en mode préemptif Une tâche peut être interrompue au profit d une autre plus prioritaire non préemptif : toutes les tâches en mode non-préemptif Une tâche perd le processeur lorsqu elle le demande explicitement mixte (attributs des tâches : préemptif ou non préemptif) Intérêts du non-préemptif dans un contexte préemptif : si temps d exécution faible, peu différent du temps de commutation de contexte engendre moindre consommation de RAM Non préemption pour protection d une ressource 17

Les tâches (5) ordonnancement (2) gestion des ressources partagées avec «Priority Ceiling Protocol» qui influe sur l ordonnancement. notion de groupe de tâches : Un groupe = un ensemble de tâches liées par une ressource interne Les tâches internes au groupe, partageant une ressource ne peuvent se préempter : C est intéressant pour des tâches coopérantes (à l aide d une même ressource) C est plus simple que la gestion classique de ressource car complètement transparent à l application Pour les tâches externes qui ont une priorité à la plus haute priorité du groupe, les tâches du groupe sont non-préemptives Pour les tâches externes qui ont une priorité > à la plus haute priorité du groupe, les tâches du groupe sont préemptives 18

Les tâches (6) classes de conformité (1) créées pour adapter le noyau : aux besoins de l application aux ressources matérielles disponibles tâches basiques seulement tâches basiques et étendues pas de mémorisation des activations + 1 tâche / niveau de priorité mémorisation des activations (tâches basiques) + plusieurs tâches / niveau BCC1 BCC2 ECC1 ECC2 19

Événements (1) synchronisation par événements événements privés : 1 événement est la propriété d une tâche étendue (c est l implémentation qui fixe le nombre d événement d une tâche) seul le propriétaire peut invoquer le service d attente modèle n producteurs / 1 consommateur n tâches peuvent invoquer le service de signalisation 1 tâche invoque le service d attente attente explicite des consommateurs (synchrone) par opposition à la signalisation asynchrone d Unix 20

Événements (2) synchronisation par événements occurrences mémorisées, effacement explicite l effacement de l occurrence est à la charge du propriétaire attente possible sur une liste d événements en OU - la première occurrence réveille la tâche - si elle est survenue lors de l appel la tâche n est pas bloquée pas de chien de garde dans les services (attente non gardée) utilisation des alarmes pour cela 21

Événements (3) SetEvent ClearEvent WaitEvent GetEvent Task T3 { SetEvent (T2, EV2) TerminateTask () } Tâche basique Tâche basique Task T1 { SetEvent (T2, EV1) TerminateTask () } Task T2 { Loop WaitEvent (EV1, EV2) ClearEvent(EV1,EV2) EndLoop } Tâche étendue 22

Ressources (1) Les ressources et l exclusion mutuelle Ressources à usage unique : code, périphérique Besoin d un accès coordonné aux ressources à usage exclusif : section critique exclusion mutuelle d accès La gestion des ressources doit assurer que : 2 tâches n occupent pas la ressource en même temps il n y a pas d inversion de priorité il n y a pas d interblocage entre tâches 23

Ressources (2) L inversion de priorité activation de T4 : Ready puis Running Priorité T4 > Priorité T3 > Task T4 T4 demande la ressource S Run W Run t T1 et T4 utilisent la même ressource Task T3 Task T2 S S Re Run S t Temps de suspension anormale de T4 Re Run S t Task T1 Run Re Run Re t T1 occupe la ressource Libération de la ressource Légende S Run Re W Suspended Running Ready Waiting 24

Le protocole «Priority Ceiling Protocol» Ressources (3) Task T5 Ceiling Priority S R Run S R Run S Libération de la ressource t t Priorité T5 > Priorité T4 > Priorité T3 > T1 occupe la ressource Task T4 S Re Run Run S t T1 et T4 utilisent la même ressource Task T3 Task T2 S Re Run S t S Re Run S t Task T1 Run Re R t T1 occupe la ressource Légende S Run Re W Suspended Running Ready Waiting 25

Ressources (4) Les ressources et l exclusion mutuelle services pour prendre et relâcher explicitement une ressource utilisation du protocole PCP pour éviter : les inversions de priorités les blocages inter-tâches GetResource ReleaseResource une ressource standard : Res_scheduler (passage en mode non-préemptif) restriction d appels de services à l intérieur d une section critique TerminateTask, ChainTask, Schedule, WaitEvent : ne doivent pas être appelés dans une section critique 26

GetResource ReleaseResource Ressources (5) Task T1 { GetRessource(R1) ReleaseRessource(R1) TerminateTask () } Ressource R1 Task T2 { GetRessource(R1) ReleaseRessource(R1) TerminateTask () } Task T3 { GetRessource(Res-Scheduler) ReleaseRessource(Res_Scheduler) TerminateTask () } 27

alarmes et compteurs Alarmes (1) compteur manipulable au travers de OIL (Osek Implementation Language) enregistrement de «ticks» externes, éventuelle pré-division compteur fini avec RAZ automatique MaxAllowedValue TicksPerBase MinCycle Source de ticks (interruption) Compteur_C1 Temps physique, couronne moteur 28

alarmes et compteurs Alarmes (2) alarme attachée à 1 compteur et 1 tâche unique ou cyclique, déclenchement absolu ou relatif l alarme est déclenchée lorsque le compteur atteint une valeur de référence sur expiration : - activation de la tâche, ou - signalisation d un événement, ou - exécution d une routine «Callback». Alarme_A1 Task T1, Activate Source de ticks (interruption) Compteur_C1 Counter Action (ActivateTask, SetEvent, AlarmCallback AlarmTime, CycleTime Temps physique, couronne moteur Alarme_A2 Task T2, Event EV1 29

exemples Alarmes (3) Période du Timer ( T ) Timer ou autre Temps 8 Compteur ( modulo 8 ) 0 Temps Alarme cyclique (temps de cycle = 6 * T) Alarme simple (Temps = 2 * T) lancement de l alarme périodique Signalisation périodique de l événement associé à l alarme lancement de l alarme Temps Signalisation de l événement associé à l alarme Temps 30

Applications Alarmes (4) activation de tâches périodiques ou non signalisation d occurrences d événement périodiques ou non périodiques garde temporelle SetRelAlarm SetAbsAlarm GetAlarm CancelAlarm 31

Alarmes (5) Compteur ticks 1ms, max : 50 Alarme_A1 Expire à 20, Périodique, cycle=20, Task T1, activate Alarme_A2 Expire à 50, Périodique, cycle=50, Task T2, event EV2 Task T1 { TerminateTask () } Task T2 { Loop WaitEvent(EV2) EndLoop } Alarme_A3 Expire à 48, unique, AlarmCallBack AlarmCallBack(name) { } 32

La communication OSEK-VDX COM 33

OSEK COM (1) La communication Portabilité, réutilisation et inter-opérabilité des logiciels d application Même interface pour les communications internes et externes Indépendance vis-à-vis du protocole de communication sous-jacent Adaptation au contexte (scalability) Configuration statique de la communication ECU_1 ECU_2 Actioneur_1 Médium de communication 34

OSEK COM (2) ISO/OSI Model Application Application OSEK OS (OSEK Operating System) Presentation Session Transport Network OSEK COM Interaction Layer Network Layer OSEK NM (OSEK Network Management) Data Link Layer (DLL) Data Link Layer Physical Bus Communication Hardware OSEK-VDX / COM v3.0 (courtoisie Christophe Marchand (PSA)) 35

OSEK COM (3) services basés autour des objets messages 1 message = 1 nom + 1 type de données + des attributs modèle de communication m : n : Écriture dans le message : plusieurs écrivains possibles (même site) Lecture du message : plusieurs lecteurs possibles (un site, sites ) des classes de conformité pour s adapter au contexte CCCA et CCCB : communication interne à un site seulement CCC0 et CCC1 : communication intra et inter-sites 36

OSEK COM (4) Modèle de communication asynchrone structure «tableau noir» (Unqueued message), variable rafraîchie structure à file FIFO (Queued message), boîte aux lettres classique pas de suspension de la tâche émettrice pendant la transmission pas de blocage si message non disponible pour la tâche réceptrice resynchronisation par polling (sur une variable d état) activation tâche sur fin d envoi ou réception signalisation d occurrence sur fin d envoi ou réception exécution routine Callback alarme sur garde temporelle (émission / réception) 37

OSEK COM (10) Application Application Message SendMessage ReceiveMessage ActivateTask, SetEvent, SetFlag or Callback ReceiveMessage Message Object Class 1 Notification Class 1 Interaction Layer Notification Detection Reception Filtering Class 4 Class 2 Class 3 Notification Detection Reception Filtering internal & external CPU-order Message Callouts Networkorder Message I-PDU Callouts IPDU Callouts Send Filtering Byte ordering Message Object Transfer Properties (Triggered or Pending) I-PDU Transmission Mode (Direct, Periodic or Mixed) I-PDU Tx Minimum Delay Time Monitoring external Transmissio n Deadline Monitoring Reception Deadline Monitoring CPU-order Message Callouts Network-order Message Callouts Byte ordering IPDU Callouts Transmission Request Transmission Confirmation Transmission Error Indication Transmission Confirmation Reception Error Indication Reception Indication Reception Indication -PDU Underlying Layer Zero-length Application Message Zero-length Message Object I-PDU Non-zero-length Application Message Non-zero-length Message Object Non-zero-length Message Storage (courtoisie Christophe Marchand (PSA)) 38

Source doc OSEK-VDX COM Filtrage sur les messages OSEK COM (9) Algorithm Reference Algorithm Description F_Always True No filtering is performed so that the message always passes F_Never False The filter removes all messages F_MaskedNewEqualsX (new_value&mask) == x Pass messages whose masked value is equal to a specific value F_MaskedNewDiffersX (new_value&mask)!= x Pass messages whose masked value is not equal to a specific value F_NewIsEqual new_value == old_value Pass messages which have not changed F_NewIsDifferent new_value!= old_value Pass messages which have changed F_MaskedNewEqualsMaskedOld (new_value&mask) == (old_value&mask) F_ MaskedNewDiffersMaskedOld (new_value&mask)!= (old_value&mask) Pass messages where the masked value has not changed Pass messages where the masked value has changed F_NewIsWithin min <= new_value <= max Pass a message if its value is within a predefined boundary F_NewIsOutside (min > new_value) OR (new_value > max) Pass a message if its value is outside a predefined boundary F_NewIsGreater new_value > old_value Pass a message if its value has increased F_NewIsLessOrEqual new_value <= old_value Pass a message if its value has not increased F_NewIsLess new_value < old_value Pass a message if its value has decreased F_NewIsGreaterOrEqual new_value >= old_value Pass a message if its value has not decreased 39

Exemples de services OSEK COM (11) SendMessage SendDynamicMessage ReceiveMessage ReceiveDynamicMessage SendZeroMessage GetMessageStatus 40

Evolutions : OSEKtime, OSEK FT Com Modèles d application 41

Évolutions Évolution conjointe avec une approche TT (Time-Triggered) OSEKtime OS 1.0 juillet 2001 OSEK FT com 1.0 juillet 2001 (Fault-Tolerant Communication) 42

Aperçu d OSEKtime OS Contexte : TTCAN - TTP/C - FlexRay 2 types de tâches : Les tâches TT Les tâches OSEK-VDX OS (classiques, services précédents) Tâche TT = un module (point d activation, point de sortie) (suspended, running, preempted) Plan statique d ordonnancement calculé hors-ligne Surveillance des échéances (marques dans le plan d ordonnancement) Utilisation des temps libres pour l exécution des tâches OSEK-VDX classiques 43

Modèles d application (1) Classes de conformité : souci d implémentation, pas de vérification Modèles d application du plus simple (analysable formellement) au plus complexe (validation par simulation) Exemples de modèles Tâches basiques, périodiques, indépendantes (la coopération par message «unqueued» n est pas une dépendance) Tâches basiques, périodiques, indépendantes avec offset initial (l offset peut être géré par une alarme non périodique) 44

Modèles d application (2) Exemples de modèles (suite) Tâches basiques, périodiques, avec partage de ressource Tâches basiques, périodiques + apériodiques (gestion par un serveur de tâches), indépendantes Tâches basiques, périodiques, dépendantes par messages («queued») internes à un site ou inter-sites Tâches basiques périodiques, tâches étendues périodiques (infos sur les causes et temps de blocage) -- Tâches étendues cycliques, coopérant via le réseau, partageant des ressources, préemptives et non-préemptives 45

Conclusion OSEK/VDX OS, COM, NM, OIL une proposition mature et complète OSEKtime OS et FTCom une architecture TT + communication FT (à promouvoir) Des produits industriels (Motorola, WindRiver ) et des produits propriétaires (équipementiers) Un pas important vers la portabilité des applications, la réutilisation de composants dans les ECU 46