La carte mémoire d'un calculateur : Flash, EEPROM, RAM et adresses

La fiche Mémoire interne ou externe pose la distinction de principe, et EPROM, EEPROM, Flash définit les technologies. Cette fiche va plus loin : la carte des adresses réelle et ce qu'elle implique pour la lecture.

CE QU'ON CIBLE SUR LA CARTE D'UN CALCULATEUR circuit imprimé MICRO- CONTRÔLEUR PFLASH + DFLASH internes FLASH EXTERNE si architecture ancienne programme + cartographies EEPROM identité véhicule 95xxx · 24Cxx Selon la génération, les données sont DANS le microcontrôleur ou dans une flash séparée à côté.
Les composants d'un calculateur et ce que chacun contient

Les quatre mémoires d'un ECU moderne

MémoireContenuParticularité
iFlash (interne au µC)bootloader fournisseur (SBOOT), bootloader client (CBOOT, personnalisé par l'OEM), programme applicatif (ASW), calibrationpeut contenir des zones OTP jamais modifiables (paramètres d'usine)
eFlash (externe, soudée)suite de l'ASW ou de la calibration quand l'interne ne suffit pasprésence variable selon la variante
EEPROMcodes d'accès sécurité, protection composant, codes défaut persistants, codage injecteurspetite, lente, modifiable octet par octet, non volatile ; Continental l'emploie beaucoup (PCR2.1)
dFlash (data flash)émule une EEPROM : VIN, codes immobiliseur, données de programmation de clésmodifier le dFlash à tort peut rendre le calculateur muet

Le CBOOT mérite une mention : c'est le bootloader personnalisé par le constructeur (BMW, VW…) qui gère les mises à jour. Il se distingue du SBOOT, posé par le fournisseur du silicium. Certaines zones OTP (programmables une seule fois) portent des paramètres d'usine que rien ne peut réécrire. Voir Bootloader et BSL.

La carte des adresses TriCore

Sur un TriCore, chaque région a une adresse de départ fixe :

RégionAdresseContenuTaille
PFLASH0x80000000 (cache) / 0xA0000000 (non-cache)code + calibration2 à 4 Mo
DFLASH0xAF000000EEPROM émulée : adaptatifs, DTC, kilométrage, immo64 à 128 Ko
Boot ROM (BSL)0xAFFFC000ROM figée en usine, chargeur d'amorçage série
SRAM0xD0000000mémoire volatile de travail56 à 136 Ko
Registres0xF0000000CAN, ADC, timers, GPIO, DMA

Le PFLASH n'est pas découpé uniformément : de petits secteurs (16 Ko) en bas accueillent le bootloader, de gros secteurs (256 Ko) en haut l'applicatif. Le vecteur de reset se trouve à 0x80000020, précédé d'un en-tête de démarrage en tête de PFLASH qui indique le point d'entrée. Cette organisation explique pourquoi le bootloader peut être protégé indépendamment de l'applicatif.

Où vit l'identité du véhicule

Point capital : le codage des injecteurs — que Bosch nomme IMA ou IQA, un code de sept caractères généré à partir d'écarts de débit mesurés sur plusieurs points de fonctionnement — ainsi que le VIN et les codes immobiliseur ne résident pas dans la calibration, mais dans l'EEPROM ou le dFlash. C'est pourquoi une intervention qui néglige ces zones peut aboutir à un non-démarrage, un déséquilibre cylindre ou une perte d'appairage. Voir le VIN dans le calculateur et l'EEPROM : rôle et précautions.

Ce que ça implique pour la lecture

C'est ici que la carte mémoire devient concrète. Une lecture en OBD ne renvoie souvent que la zone de calibration ; une lecture en bench ou en boot crée une sauvegarde complète — iFlash, eFlash, dFlash et EEPROM. L'ordre de grandeur est parlant : sur un calculateur de 4 Mo de flash plus 64 Ko d'EEPROM, si l'OBD n'expose que 512 Ko, une lecture bas niveau expose environ 4 Mo, soit près de huit fois plus de données. Ces modes sont comparés dans OBD, bench, boot et Virtual Read.

La conséquence est double. D'une part, l'identité du véhicule vit dans le dFlash et l'EEPROM, pas dans la calibration. D'autre part, sans une sauvegarde complète du fichier d'origine, il peut être impossible de restaurer le calculateur dans son état antérieur. C'est la raison pour laquelle la lecture intégrale, puis l'archivage de l'original, précèdent toute modification.

Les zones qui ne se réécrivent pas

Toutes les régions ne sont pas modifiables. Certaines zones OTP (One-Time Programmable), programmées une seule fois en fabrication, portent des paramètres d'usine que rien ne peut réécrire : elles font partie intégrante de l'identité matérielle du calculateur. À l'autre extrémité, le bloc d'amorçage figé en ROM (le BSL, à son adresse fixe) ne s'efface jamais : c'est lui qui permet de programmer une puce vierge en usine et de récupérer un calculateur dont le logiciel est mort. La zone des registres périphériques, à 0xF0000000, n'est quant à elle pas de la mémoire de stockage mais l'interface vers le CAN, les convertisseurs et les timers.

Reconstituer ce que l'OBD ne donne pas

Comprendre la carte mémoire éclaire une pratique courante : quand l'OBD ne renvoie que la calibration, il est parfois possible de reconstituer une image plus complète en combinant la partie lue avec une base de référence de la même version — la logique de la lecture virtuelle, décrite dans Virtual Read. Mais cette reconstitution a ses limites : elle ne restitue jamais les zones d'identité propres au véhicule (VIN, immo, codage injecteurs), qui ne peuvent venir que d'une lecture complète du calculateur concerné. C'est la raison de fond pour laquelle la sauvegarde intégrale préalable n'est pas une précaution parmi d'autres, mais le socle de tout travail sérieux.

Voir aussi Mémoire interne ou externe, la flash NOR parallèle et l'EEPROM : rôle et précautions.


Sur ANP Engineering — file service de reprogrammation moteur pour professionnels : file service ECU, correction de checksum, calculateurs pris en charge, tarifs.

ANP Wiki
ANPFile Service · reprog en ligne
Chargement…