微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > Large Image OAD CRC校验问题

Large Image OAD CRC校验问题

时间:10-02 整理:3721RD 点击:

调试Large Image OAD已经可以正常工作,现在在使用发现一个莫名其妙的问题,不知道是程序的bug还是硬件的bug。

正常使用的时候是先烧BIM,然后烧Img_A,这个情况下面,BIM在第一次运行的时候检查Img A的crc位和Img_Header的crc,如果不匹配,而且Img_Header的crc为0xffff的话会调用crcCheck,对Img_A进行Crc计算,如果算出来的crc跟Img A的crc位匹配,则写入Img_Header的crc。

问题来了,如果烧录的顺序倒过来,先烧录Img_A (Erase&program),再烧BIM (Append) ,BIM会出现校验错误,大概是在Img_A头开始的第5个Page开始crc出错。但是在debug里面看到BIM从flash里面读出来的那个Page的2048个数据与源文件完全一致。这会是什么问题呀?难道CRC校验出来配置seed之外还要配置其他参数的么?

搞清楚了,原来是LL_init 修改了Image的其中4个字节,所以只要运行过LL_init之后,对Image做CRC永远也不能得到编译时由IAR生成的那个CRC值。 至于前面说的那个Page一致的问题,是我看错了,当时内存里面的是前一个Page的数据。

好:

     我现在遇到一个问题,不知道你有什么建议。

     先download BIM工程。

     在使用SimpleBLEPeripheral工程时,在Select the Project->Edit Configurations选择CC2541-OAD-ImgB,在编译出来后downloader到CC2541里去。

     再使用BIM工程debug(用的是debug without download),却发现CRC校验不对,这个是为什么呢?工程都是用默认的,没有改过。

     

你好:

        跟你相同的问题,请问你解决了吗?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top