我有一个使用 Hi Tech C 编译器在 MPLAB 8 中构建的项目。当我将其加载到 MPLAB 8 中对器件进行编程时,我会得到一个校验和(我使用不受保护的校验和),然后当我将其加载到 MPLAB X IPE 中时,我会得到一个完全不同的校验和。是否有一个原因?有没有办法证明这两个校验和来自同一个文件?
我注意到的一件事是 MPLAB 8 中 ID 存储器的前 4 位数字与 MPLAB X IPE 中的 CP=OFF 校验和相匹配。这足以证明文件是相同的吗?
我希望这是有道理的 - 如有任何帮助,我们将不胜感激
影响 IDE 生成的校验和值的因素有很多。
任何使用多个源代码 (.C) 文件构建 C 语言项目的 MPLAB 项目都将具有一个校验和,该校验和取决于 (.obj) 目标文件的链接顺序。
自 MPLAB 8.92 发布以来,Microchip 还更改了 IDE 用于为许多控制器创建校验和的方法。
因此,如果您在 MPLAB 和 MPLABX 工具中使用相同版本的 C 编译器,当且仅当目标文件以相同顺序链接且校验和可能不同时,“应该”生成相同的 (.HEX) 文件.
使用 ASCII 文本文件比较工具,例如 Windows shell 附带的工具 (FC.EXE),查看 .HEX 文件发生了多少变化。
您应该看到的唯一区别在于用于对目标控制器中的 IDLOCS 进行编程的 HEX 文件记录。