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

CC2640 OAD 问题

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

您好,我司在调试oad时候遇到问题,求助

环境:基于官方2.1协议栈例程SimpleBLEPeripheral工程开发  没有外挂flash

python: python27  intelhex-1.5.win32.exe 

未做oad之前,定义了FEATURE_OAD宏 下载运行功能正常,OAD服务uuid F000FFC0已经运行 ,下面是我做oad的过程

 按照文档CC2640 BLE OAD User's Guide.pdf 第八节 Building On-chip OAD内容操作

8.1  Building BIM  未做改动

8.2  Building the BLE Stack  对于提到的CC2640_BLE_peri_HL_CL_FlashROM.a我没太明白怎么使用,故未做改动,请问一下,这里请问具体如何操作?

8.3  Building the OAD Target Application 根据文字描述,我修改如下

    Build Actions--->Post-build command line 加入合并脚本

      python "C:\Python27\Scripts\hexmerge.py" -o "$PROJ_DIR$\FlashROM\Exe\OAD_merge.hex" -r "0000:1FFFF" --overlap=error "$PROJ_DIR$\FlashROM\Exe\SimpleBLEPeripheralAppFlashROM.hex":0100:1FFFF "$PROJ_DIR$\..\..\..\..\..\util\BIM\CC26xx\FlashOnly\Exe\BIM.hex":0000:1F5FF "$PROJ_DIR$\..\..\Stack\CC2640\FlashROM\Exe\SimpleBLEPeripheralStackFlashROM.hex":F000:1EFFF

编译成功,生成了OAD_merge.hex  下载成功后无法运行

然后我根据我们板子gpio 配置了官方例程  OADTarget  编译后用 Flash Programmer 2 下载OAD_merge.hex ,运行正常

故开始移植OADTarget例程的配置,修改如下

1、

Options→Linker→Config.   ‘Linker configuration file’:修改为

$PROJ_DIR$\..\..\..\..\..\common\cc26xx\IAR\cc26xx_ble_app_oad.icf

    ‘Configuration file symbol definitions’:添加 RTOS_ROM=1

2、

Options→C/C++ Compiler→Preprocessor→Defined symbols加入宏

ICALL_STACK0_ADDR=0xF000

FEATURE_OAD

FEATURE_OAD_ONCHIP

HAL_IMAGE_A

3、 stack我对比了下,SimpleBLEPeripheral 的CALL_STACK0_ADDR=0x0000F000   ICALL_RAM0_ADDR=0x200043E4 放在了文件IAR-Boundary.xcl中用了在 Extra Options用 -f $PROJ_DIR$\..\..\Config\IAR-Boundary.xcl引入而已,其他就是OADTarget 中ICALL_RAM0_ADDR=0x20004300 ,故stack未做修改

4、 编译APP失败,报错

然后我看来下,cc26xx_ble_stack.icf  代码  根据文档0x00600 到0x1000是OAD Target APP Part 1 内容,故添加了下IMAGE起始地址宏

Options→Linker→Config.   ‘Configuration file symbol definitions’:添加APP_IMAGE_START=0x600

5、编译成功,下载后,依然无法运行

请问各位大神,有何良药医治该顽疾,文档我是看了几遍,实在悟不出其中奥妙,不知是偶内力不够,还是秘籍缺斤少两,请各位大神指点,万分感谢,有在上海的,请吃大餐!




楼主如果只想实现OAD不要改什么的话,我们就有现成的,如下图,你点击就可以了

然后编译,我们老版本的OAD手册有个错误,新版本改过来了,应该是HAL_IMAGE_B不是A

对于Python 的位置应该是这样的

你试试看

你好,你说的这是imageB的制作了,我说的是 用python把 三个合并成OAD_merge.hex之后下载进去,运行不了,过程不是应该是OAD_merge.hex下进去能够运行,然后制作imageB,通过apk 来通过oad的uuid写入imageB部分,然后reset,运行imageB

其实你可以用JFLAH来合并hex,不一定要用python的

感谢您的帮忙,问题我已经解决了,是我的代码编译后太大了,Target APP 从0x600开始写入 超过了0x5FFF,修改了flash end搞定跑起来啦

shi lian:

您好!我用官方的从机例程按你的步骤配置,用python把 三个合并成OAD_merge.hex,但是编译不过,提示Error while running c:\Python27\python.exe "C:\Python27\Scripts\hexmerge.py" -o "C:\ti\simplelink\ble_cc26xx_2_01_00_44423\Projects\ble\MilkPowderStick\CC26xx\
IAR\Application\CC2640\FlashROM\Exe\OAD_merge.hex" -r "0000:1FFFF" --overlap=error "C:\ti\simplelink\ble_cc26xx_2_01_00_44423\Projects\ble\
MilkPowderStick\CC26xx\IAR\Application\CC2640\FlashROM\Exe\SimpleBLEPeripheralAppFlashROM.hex":0100:1FFFF "C:\ti\simplelink\
ble_cc26xx_2_01_00_44423\Projects\ble\MilkPowderStick\CC26xx\IAR\Application\CC2640\..\..\..\..\..\util\BIM\CC26xx\FlashOnly\Exe\BIM.hex":0000:1F5FF "C:\ti\
simplelink\ble_cc26xx_2_01_00_44423\Projects\ble\MilkPowderStick\CC26xx\IAR\Application\CC2640\..\..\Stack\CC2640\FlashROM\Exe\
SimpleBLEPeripheralStackFlashROM.hex":F000:1EFFF ,这是怎么回事啊,还有其他什么需要配置吗?

安装好Python27后, 无需要其他配置。请确认你的Python是否正常安装。还有就是你的hexmergy.py 等脚本的目录是否正确(我2年前安装的目录和 这个的目录就不对应)。

另外,新问题,建议开新帖。

你好,我在编译的时候出错了,就是制作imageB的时候,编译这个工程。错误在附件中。

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

网站地图

Top