Les logiciels des ECU, un logiciel comme un autre...
Il existe un procédé qui permet de ramener les données binaires du code machine à un format lisible par l'homme.
Un logiciel traduit alors le code bit à bit en langage d'assembleur (ASM), on dit que l'on dé-assemble ou que l'on dé-compile le code du logiciel.
L'assembleur est un langage de programmation dit de “bas niveau″, le code prend alors une forme de suite d'instructions sous forme de mnémonique.
L'analyse de la structure de ces mnémonique permet alors de "comprendre" le travail effectuer par le microcontrôleur de l'ECU.
Cette pratique est extrêmement puissante, Elle est si puissante qu'elle permet de comprendre le fonctionnement du logiciel en profondeur, mais aussi la philosophie utilisée par les programmeurs initiaux à l'origine du logiciel.
Lorsqu'un programme est démarré, les instructions sont exécutées ligne à ligne, on pourrait comparer cela à des instructions d'une notice lu par une personne, exécutant les tâches au fur et à mesure qu'il les lit.
Pour ceux qui ont déjà joué avec des livres dont vous êtes le héros de l'aventure, votre aventure ne sera pas la même en fonction des choix pris pendant le jeu.
De la même façon, le code du programme pourra "sauter" (jmp) des lignes de code si des conditions ne sont pas remplies, on appelle cela des sauts conditionnels.
Le dé-assemblage du code permet donc de suivre les instructions écrites par le programmeur initialement et de suivre le cheminement en fonction de conditions remplies.
En programmation, comme dans d'autres secteurs d’activités, il est possible d'arriver à un même résultat en utilisant différentes stratégies ou outils pour atteindre un objectif.
En contre partie, cette méthode n'est pas accessible à tout le monde, l'utilisation de logicielle de dé-assemblage ne s’improvisent pas, il faut de sérieuse notion de langage assembleur, des notions de hardware (processeur, registre, mémoire, etc …), un logicielle de dé-assemblage compatible avec le microcontrôleur de l'ECU manipulé (IDApro par exemple) et beaucoup de temps.
Car si il est courant de trouver cette pratique chez les passionnés d'informatique, c'est que l’architecture des processeurs est souvent semblable, ce qui n'est pas le cas dans les ECU de gestion moteur ou plusieurs fabriquant et architecture se partagent encore le marché.
Pour ce qui est du temps à y consacrer, un listing de quelques centaines de kilo-octet peut représenter plusieurs millions de pages à analyser, il est utile de s'armer de courage et de persévérance !
A ce stade d'intervention sur le code du programme on parle plus volontiers de développement. Il n'est pas impossible d'imaginer l’ajout de nouvelles fonctions ou de nouvelles stratégies pour étendre les capacités de l'ECU.
En fait la seule limitation des possibilités d'interventions et extensions sera celle de vos connaissances.
Les logiciels des ECU, un logiciel comme un autre...
Comme nous venons de le voir, le programme qui se trouve dans un calculateur de gestion moteur (ou autre) ce travail comme n'importe quel programme informatique. Il est créé par des hommes qui ne sont pas sans défauts, ou n'appréhendent pas toute la complexité de la tâche du premier coup.
Cela peut occasionner des petites erreurs informatique, plus connu sous le nom de ″ bug ″ en anglais ou ″ bogue ″ en français. Ce sont des erreurs qui interviennent lorsque le programme rencontre une situation qui n'avait pas été prévu par les développeurs du programme.
C'est pourquoi, tout le long de la vie d'un programme, dans l'automobile pour les ECU comme dans l'informatique traditionnel, des mises à jour sont nécessaires.
Ces mises à jour sont parfois bénignes et peuvent passer inaperçu pour l'utilisateur et parfois ce sont des mises à jour majeures qui sont constatables immédiatement à l'utilisation.
Il y a mise à jour des ECU toute la vie du véhicule, des fois bien longtemps après sa sortie d'usine.