【发布时间】:2019-03-04 19:24:33
【问题描述】:
我制作了以下 intel hex 文件 sn-p 来测试几个 8051 处理器模拟器:
:1000F5007002501F500CED2562FDEE3561FEEF35A7
:1001050060FFE56233F562E56133F561E56033F57E
我使用的一个位于这里:http://www.jroweb.de/8051/
根据我的研究,据我了解,intel hex 文件的校验和是通过将所有十六进制数字对(最后一个除外)相加来计算的,然后将结果与 255 进行与运算以获得 8 位值,反转值,加 1,然后做 mod 256。
我基本上遵循了这些论坛的受访者的数学:
当我执行计算时,上面 sn-p 中每一行的校验和值都是正确的,但是在我上面提到的 8051 处理器模拟器程序中,它在最后一行显示校验和错误。它认为值应该是 7F 而不是 7E。
是否有可能在最后一个 hex 文件行中存在误报(这会使某些软件误以为 7F 是正确的值)?如果是这样,我应该如何安排我的 hex 文件中的最后一行来修复它?
【问题讨论】:
标签: debugging checksum calculation false-positive hex-file