Ana içeriğe geç

Doğrulama

Bir ROM'u değiştirdikten sonra ECU onu yine de kabul eder, ama emniyet veya emisyon testlerinden geçemeyebilir. Doğrulama iki işe yarar: yazdığınız verinin ROM içinde doğru yerde olduğunu kanıtlar ve varsa checksum alanlarını yeniden hesaplar.

Checksum nedir?

Birçok ECU, kod ve veri bloklarının üzerinde ya da sonunda bir sağlama değeri taşır. Bu değer değişmediyse ECU "değiştirilmediğim" sanır. Yazma işlemi bu alanları geçersiz kılar; düzeltilmezse ECU kendi kararını verir (genellikle acil durum modu).

Doğrulama ve düzeltme

Proje ▸ Checksum Doğrula — seçili algoritma için tüm blokları kontrol eder. Proje ▸ Checksum Düzelt — hatalı blokları yeniden hesaplar.

Akış:

  1. ECU tipinizi seçin.
  2. Doğrula çalıştırın; hangi blokların hatalı olduğu listelenir.
  3. Önce harita düzenlemelerinizi yapın, en son checksum düzeltmesini uygulayın — aksi hâlde checksum tekrar geçersiz olur.
  4. Düzeltme sonrası tekrar doğrulayın.

Yerleşik algoritmalar

Bosch MED17/EDC17 doğrulaması ve düzeltmesi uygulama içinde gömülüdür; ek DLL gerekmez. Bu aile dışındaki algoritmalar için Windows modül kütüphanesi kullanılır.

148 modüllük Windows kütüphanesi

ChecksumDLL/ klasöründe 148 adet 32-bit modül bulunur. Bunlar 32-bit Windows üzerinde çalışır ve 64-bit uygulamanın içinden checksumhelper.exe yardımcı süreci aracılığıyla çağrılır.

Gerekli çalışma zamanı

Modüller Microsoft Visual C++ 2005 SP1 (x86) çalışma zamanına bağlıdır. Bu çalışma zamanı kurulu değilse modüller yüklenemez. Uygulama bu durumu açık bir mesajla bildirir.

Modüller yalnız Windows üzerinde kullanılır; Linux ve macOS'ta yalnızca yerleşik MED17/EDC17 yolu çalışır.

Bir checksum modülü yüklerken neden ayrı süreç var?

checksumhelper.exe 32-bit bir yardımcı süreçtir. ROM verisi geçici dosyalar üzerinden iki süreç arasında aktarılır. Bu sayede 64-bit uygulama, 32-bit bir DLL'i kendi adres alanına yüklemeden çalıştırabilir.

Harici kontrol ile karşılaştırma

Uygulamanın verdiği sonucu her zaman bir bağımsız kaynakla doğrulayın:

  • ECU yazılımının kendi araç seti,
  • Üreticinin checksum/doğrulama yazılımı,
  • Dinamometre ve emisyon testi sonuçları.

Uygulama "başarılı" dese bile haritalar yanlış yere yazılmışsa sonuç anlamsızdır. Doğrulama zincirinin en zayıf halkası checksum değil, adres eşleştirmesidir.

A2L taban adresi doğrulaması

Bir A2L dosyasındaki adresler bir taban adresine göre verilir. Yanlış taban adresi seçildiğinde haritalar yanlış yere açılır — checksum doğrulaması bunu yakalayamaz. İlk çalışmada:

  1. Tanıdığınız bir haritanın adresini A2L ile karşılaştırın.
  2. ROM'da o adresin anlamlı veri içerdiğini doğrulayın.
  3. Gerekirse taban adresi listesini elle düzeltin.

Kaydedip yeniden açma testi

En basit bütünlük testi:

  1. Değişiklikleri kaydedin.
  2. Projeyi kapatın.
  3. Dosyayı yeniden açın.
  4. Doğrula çalıştırın ve düzenlediğiniz haritaların değerlerini kontrol edin.