求bqfs升级固件后,校验全部FLASH的指令和算法
附件里有张图片,是通过逻辑分析仪监控GaugeStudio得到的数据。
我猜这是一个“读全片校验的指令返回的数据”
W: 16+ACK 00+ACK 05+ACK
W: 16+ACK 64+ACK 05+ACK 00+ACK
R: 16+ACK 66+ACK 17+ACK 00+NAK
R: 16+ACK 04+ACK 17+ACK D8+ACK 4E+ACK 48+ACK 9E+NAK
R: 16+ACK 64+ACK 17+ACK 0C+ACK 02+NAK
W: 16+ACK 00+ACK 0F+ACK
W: 16+ACK 64+ACK 0F+ACK 00+ACK
延时4000ms
W: AA+ACK 00+ACK 01+ACK 00+ACK
...
已经进入正常模式
从数据流可以看出校验是D8 4E 48 9E,但是从SLUA504A的流程图来看,这个校验值是所有数据(32字节/块)的
和,并且去掉高16位,但是好像怎么也拼不出这个值来。
希望有做过这方面或者有资料的朋友帮忙解答一下,非常感谢
楼主可否告知需要知道这部分内容的目的?如果只是下载的话,只需要按照bqfs和dffs文件的内容进行烧录即可,这2个文件是自带了校验功能
谢谢。
如果让MCU来解释bqfs脚本的话,效率太低了。
我的目的是搞清楚每一条指令的功能,尤其是校验整个FLASH,因为如果烧入有误,那么退出ROM模式可能会导致芯片报废,生产是不允许出现这样的情况的。
我的做法是把bqfs文件转换成二进制映像,并且和CRC32/MD5一起存到下位机中,每次烧录的时候,都要对映像进行校验,确保固件没有问题。
EV2300的时序是非常慢的,我自己做的能最大限度提高产量。
如果找不到校验算法,那么可能就要全部读回来,重新比较一次了。