在做 Large Image OAD 升级时,OAD 升级之后,代码还是执行的是 imageA 的代码,代码使用的是 wiki 官网的代码,请问
1、上述的问题,可以从哪几方面去检查?
2、现在 Large Image OAD 有基于协议栈 1.4 的版本吗?
Susan Yang:
您使用的是 http://processors.wiki.ti.com/index.php/BLE_Large_Image_OAD?
在flash中, 首先存放的是BIM, 接着是imageA的一部分, 接着是完整的imageB, 然后才是剩下的imageA.
所以我觉得flash programmer中如果你用append, 试图把imageB放到imageA之后, 肯能和imageB中定义的falsh起始地址有冲突之类, 造成错误.
he:
回复 Susan Yang:
对的,是上面链接的代码。
我分别用 IAR 下载的 BIM 和 imageA 和 用 flash programmer 下载 BIM 和 imageA ,得到的效果都是一样,OAD 之后,执行的还是 imageA 的代码。
he:
回复 Susan Yang:
请问这个是怎么回事啊,现在急着等回复啊。。。。。。
HG:
回复 he:
1. 检查分配的地址有没有冲突。
2. 检查IMAGEB的CRC是不是正确
he:
回复 HG:
Hi Holly,
非常感谢您的回复,
1、我是从 wiki 官网下载下来的代码,没有做修改啊,您说的检查分配的地址有没有冲突时指.xcl文件里面的吗?
2、我检查了imageB的CRC,当OAD imageB后,调试bim的main函数发现crc[0]与crc[1]不相等。
3、代码在1.3.2协议栈和1.4协议栈上面测试都出现上述问题。
da qin zheng sheng:
回复 he:
不错学习了!
Derek Wu:
回复 Susan Yang:
你好,为什么flash中要这样存放,那bim和imageA到底用什么工具怎么烧录呢,谢谢!
he:
回复 Derek Wu:
bim和imageA,我每次都是通过IAR直接烧录的。
Derek Wu:
回复 he:
我都是把他们合并成一个文件,用flash programer一次性烧进去