我目前在使用TMS320F28377s这款DSP芯片是遇到了一个问题,寻求帮助。
情况如下:
我目前在开发一个bootload程序,其功能是通过SCI接收上位机下发的程序,将接收到的程序写入特定的Flash地址(0x84000开始的地址),最后通过计算Flash中相关地址中的CRC码来校验程序是否正确。
现在遇到的问题是,最后一步CRC校验总是通不过。我目前已经完成了以下排查工作:
(1)、先利用XDS100V3仿真器将app程序烧写到flash中,然后再利用仿真器将bootload的程序烧写到flash中,bootload和app是两块不同的地址且不冲突。烧写bootload时,配置仿真器选择部擦除app相应地址区域。这种情况下,CRC校验可以通过;
(2)、利用仿真器将上述两块Flash地址中的数据分别导出保存;
(3)、利用上位机将app程序写入到Flash中,重新运行bootload程序,发现CRC校验不通过。将此时Flash中app和bootload的程序分别导出保存,与之前保存的数据做对比(利用对比软件),发现两次导出的Flash数据相同。
(4)、通过观察bootload中变量,确定了Flash数据校验出错的地址与该地址的数据,发现烧录不同的程序,校验出错的位置不同,且未发现规律。
(5)、更换令一片DSP芯片,重复上述测试,发现相同结果。
以上为我所遇到的问题和排查过程,相请教导致这种情况的原因和有没有什么处理办法。
Susan Yang:
user6339213将接收到的程序写入特定的Flash地址(0x84000开始的地址),最后通过计算Flash中相关地址中的CRC码来校验程序是否正确。
谢谢您的详细描述,请问能否详细描述下是如何进行CRC校验的?
另外请给出您的.cmd文件,谢谢