我目前正在尝试使用另一个微控制器和 KL17 内置的 UART ROM 引导加载程序对 KL17 微控制器进行编程。我已经完成了 ping 和擦除操作,至少在纸面上是这样,但是我在向 KL17 写入数据时遇到了困难。数据手册(第 43 页)中的示例指出,对于这些字节(帧数据包,不包括 CRC16 字节 + 内存写入命令数据包):
0x5A, 0xA4, 0x0C, 0x00, 0x04, 0x00 , 0x00, 0x02, 0x00, 0x04, 0x00, 0x20, 0x64, 0x00, 0x00, 0x00CRC16 字节为 0x06 0x5A。但是,第 27 页提供的 CRC16 算法对我输出的是 0x2b 0x56。我也尝试过网上各种 CRC16 计算器,以及许多不同的 CRC16 计算方法,但它们都没有给出 0x06 0x5A 的结果。
Noay_0-1790003799652.png
我的假设是,要么是我漏掉了计算中必须包含的字节(我不知道是哪些,因为后面的数据包都有自己的 CRC16 字节),要么是有人把数据表搞砸了(这也不太可能,因为这个例子和 KL17 子系列参考手册中的例子一模一样)。
你好@Noay ,
感谢你的帖子。我认为参考手册中的“0x06 0x5A”值不正确,很可能是文档错误。根据您提供的信息,您的 CRC 计算结果“0x2B 0x56”看起来是正确的。
您仍然可以使用 blhost 工具来调试引导加载程序命令。参数“-d”将提供主机和目标之间的所有通信过程。
我已在我的 KL27 板上尝试了这个功能,请参见下面的屏幕截图。
我们没有 KL17 EVB 板,您能否在您的 KL17 设备上尝试相同的方法,看看结果如何?
对于文档错误,我深表歉意。我会将此情况反馈给内部团队,并建议相应地更新文档。
BR
塞莱斯特