求助:BLE CC2540 Large Image OAD实验,无法使用SmartRF Flash Programmer下载问题
hi
现在BLE Large Image OAD实验中只能使用空中下载,用SmartRF Flash Programmer下载BIM 和 ImgA成功,然后使用Multitool工具OAD下载ImgB.bin成功,能正常工作。
实验使用SmartRF Flash Programmer下载BIM 和 ImgA成功,然后Append and verify "ImgB.hex"失败,提示Error in HEX file verification 。
简单做了下面三条测试:
1、SmartRF Flash Programmer升级到最新版本SmartRF Flash Programmer 1.12.7.0 失败,问题依然存在
2、三个文件BIM.hex、ImgA.hex和ImgB.hex,仅下载其中一个全部下载成功。
3、Linker configuration file 配置确定分别为cc254x_f256_imgA_small.xcl和cc254x_f256_imgB_Large.xcl;
Texas Instruments -> Download配置确定仅勾选Retain unchanged pages
参考文档:
BLE Large Image OAD :http://processors.wiki.ti.com/index.php/BLE_Large_Image_OAD
OAD_for_CC254x_V1.2.pdf :http://processors.wiki.ti.com/images/8/82/OAD_for_CC254x.pdf
希望能得到你的帮助
兄弟,你这Image_A可以做到多小?
OAD Image B 157K
OAD Image A 90K
Hi alex,
imageA 和 imageB 在flash中存储的位置并非连续.
在flash中, 首先存放的是BIM, 接着是imageA的一部分, 接着是完整的imageB, 然后才是剩下的imageA.
所以我觉得flash programmer中如果你用append, 试图把imageB放到imageA之后, 肯能和imageB中定义的falsh起始地址有冲突之类, 造成错误.
你用IAR下载imageA, 接着下载imageB, 会有问题吗?
hi Yan,
测试环境:
IAR C/C++ Compiler for 8051 8.10.1 (8.10.1.40194)
BLE STACK BLE-CC254x-1.3.1.EXE FOR CC2540
使用IAR下载imageA, 接着下载imageB, 会有问题吗?
测试一:
完全不做修改,下载imageA成功,接着下载imageB,提示调试模式无法正常使用终止。
测试二:(开启Linker->Output->Format->Debug information for C-SPY)
下载imageA成功,接着下载imageB,能正常下载。
以上测试,映像文件下载命令一样:Make & Restart Debugger,imageA 和imageB 设置项Texas Instruments -> Download配置确定仅勾选Retain unchanged pages
兄弟,不知道解决了没有,这两天也在也就如何减少OAD-only的Image_A的体积,你说的这个例子,我看了一下xcl文件,发现ImageBd的xcl文件有点奇怪,看如下定义:
[code]
-D_CODE_BEG=0x4030 // Last 10 pages of Bank 0.
-D_CODE_END=0x7FFF
-Z(CODE)CHECKSUM=0x3000-0x3001
-Z(CODE)IMAGE_HEADER=0x3002-0x300F
-Z(CODE)AES_HEADER=0x3010-0x302F
[/code]
这样程序能正常运行吗?,没想明白啊
hi rtos
问题没解决,在Yan的回答中有说到,“所以我觉得flash programmer中如果你用append, 试图把imageB放到imageA之后, 肯能和imageB中定义的falsh起始地址有冲突之类, 造成错误”,让我感觉这个问题将异常棘手,所以先把这个问题搁置起来。
最后希望后续有顺利实现这个功能的朋友,能帮忙解惑。
用SmartRF Flash Programmer下载BIM 和 ImgA成功,但是Multitool找不到设备。这是为什么?
1.广播是否正常
2.Multitool下载最新版本,然后使用纯天然例子编译烧录硬件试试。
采用纯天然代码,没有改动。直接编译和烧录!就是找不到!
ImageB实际大小110k,二编写生成的ImageB.bin缺有284k,这个怎么解决啊啊????????????????????