跳转至

校验

修改 ROM 之后 ECU 仍会接受它,但可能通不过安全或排放测试。校验做两件事:证明 你写入的数据在正确的位置,并重新计算 checksum 区域。

checksum 是什么?

许多 ECU 会在代码与数据区块内或末尾保存一个完整性校验值。若该值没有变化, ECU 会认为"没有被改动"。写入会使它失效;若不修正,ECU 就会自行决定(通常 进入应急模式)。

校验与修正

项目 ▸ 校验 checksum 检查所选算法的全部区块,项目 ▸ 修正 checksum 重新计算失败的区块。

流程:

  1. 选择 ECU 类型。
  2. 运行校验,列表会显示失败的区块。
  3. 先完成标定图修改,最后执行 checksum 修正 —— 否则 checksum 会 再次失效。
  4. 修正后再次校验。

内置算法

Bosch MED17/EDC17 的校验与修正已内置于应用中,无需任何 DLL。其他系列使用 Windows 模块库。

148 模块的 Windows 库

ChecksumDLL/ 包含 148 个 32 位模块。它们在 32 位 Windows 上运行,由 64 位 应用通过 checksumhelper.exe 辅助进程调用。

必需运行库

模块依赖 Microsoft Visual C++ 2005 SP1 (x86) 运行库。未安装时模块 无法加载,应用会明确提示。

模块仅在 Windows 上可用;Linux 与 macOS 只有内置的 MED17/EDC17 路径。

为什么要单独的进程?

checksumhelper.exe 是 32 位辅助进程。ROM 数据通过临时文件在两个进程之间 传递,这样 64 位应用无需把 32 位 DLL 加载进自己的地址空间即可运行它。

一定要与外部工具交叉验证

把应用的结果看作多方意见之一:

  • ECU 厂商自带的工具集,
  • 厂商的 checksum/校验软件,
  • 台架与排放测试结果。

即使应用报告成功,若地址匹配错误,整条验证链依然无意义。验证中最薄弱的一环 不是 checksum,而是地址匹配。

A2L 基地址验证

A2L 中的地址是相对基地址给出的。基地址错误会让标定图打开在错误位置,而 checksum 校验无法发现。首次使用时:

  1. 用你已知的地址与 A2L 中的值对照。
  2. 确认 ROM 在该地址处确实是有意义的数据。
  3. 必要时手动修正基地址列表。

保存并重新打开测试

最简单的完整性测试:

  1. 保存改动。
  2. 关闭工程。
  3. 重新打开文件。
  4. 运行校验并检查你编辑过的标定图数值。