In dieser Serie von Beiträgen rund um das BCM möchte ich mich etwas mehr in das innere der Software eingraben. Zum einen um diese besser zu verstehen, zum anderen aber auch um mir gewisse Dinge für Modifikationen dingbar zu machen.
Die Arbeitsergebnisse
Wie immer sammle ich im ersten Thread nach und nach die Erkenntnisse, bzw. Verweise darauf:
- BCM Firmware Reverse-Engineering (Bootloader)
- BCM Firmware Reverse-Engineering (HW-Erkennung)
- BCM Firmware Reverse-Engineering (HS-CAN Kommunikation)
- BCM Firmware Reverse-Engineering (RFRX-Kommunikation für ZV, PATS und RDKS)
Der Proband
Ich verwende für alle Beiträge ein BCM eines 2.2er Diesel mit allen Funktionen (Vollausstattung) vom Typ BG9T-14A073-XK und der darauf befindlichen Firmware BG9T-14C094-AK.
Einige Eckdaten
Die Zentraleinheit (1) vom Typ R32C R5F64524KFD
- Byteorder: Little-Endian
- Internes RAM: 48 KB
- Interner Flash-Speicher: 768 KB + 4 KB Data Flash + 4 KB EEPROM Emulation Flash
Memory Map
- SFR1 und SFR2 => Special Function Register, bilden über Speicheradressen Zugriff auf die Module des Mikrocontrollers
- Data Flash => 0x0006_0000 - 0x0006_1FFF (ECC und Non-ECC Modus). Enthält nur die CCC im AsBuilt-Format.
- E2 Data Flash => 0x0006_2000 - 0x0006_3FFF. EEPROM-Emulation.
- Internal ROM => 0xFFF4_0000 - 0xFFFF_FFFF. Hier liegt die Firmware sowie die Reset-Vectoren.
Verfügbare Datenblätter
- Das Basisdatenblatt R32C Datasheet.pdf
- R32C-152 Users Manual.pdf
- R32C Software Manual.pdf