第二十四节 OAD空中升级

第二十四节  OAD空中升级
通过仿真器更新程序或者通过USB更新固件那都是一般人都可以实现的操作,但是要想实现OAD空中升级,这还是需要一定的技术能力。这一节我就带着大家完善这一能力。 OADn air download,指空中下载模式。当我们的产品发布以后,有时需要对固件进行升级,OAD是升级方式中的一种。配置BIM(Boot Image Manger)打开IAR,打开BLE-CC254x-1.4.0下的工程:C\TexasInstruments\BLE-CC254x-1.4.0\Projects\ble\util\BIM\cc254x\BIM.eww,然后编译,下载到开发板中。


配置Image A
    打开OADExample工程,配置工程,添加如下几个宏
    FEATURE_OAD_BIM
    HAL_IMAGE_A
    FEATURE_OAD
    OAD_KEEP_NV_PAGES


(1) 打开simplePeripheral.c找到宏定义DEFAULT_ENABLE_UPDATE_REQUEST,将其改为FLASE。否则会影响BLEDevice Monitor对其进行空中升级,到时可以再改回来。


(2) IAR左侧导航中找到Profile文件夹,点击右键添加oad_target.c和oad_target.h两个文件,二文件位于C:\TexasInstruments\BLE-CC254x-1.4.0\Projects\ble\Profiles\OAD中。


(3) 在IAR导航中找到HAL→Target→MT254xboard→Driver,右键添加文件hal_crc.c,该文件位于C:\TexasInstruments\BLE-CC254x-1.4.0\Components\hal\target\MT254xboard中。


(4) 在刚才的simplePeripheral.c文件中,找到simplePeripheral_Init()函数,在里面添加OADTarget_AddService()函数。


(5) 在simplePeripheral.c的前面,添加引用OAD的头文件,OAD.h和OAD_target.h。


(6)  点击Project→Option…,或直接按Alt+F7,选择BuildActions,在Post-buildcommand line中添加:
"$PROJ_DIR$\..\..\common\cc2540\cc254x_ubl_pp.bat""$PROJ_DIR$" "rodUBL""$PROJ_DIR$\CC2540-OAD-ImgA\Exe\OADExample"
注意,各双引号之间只有一个空格。注意图中红框标的部分,Image_A是和之前第1步对应的。


(7) 点击Project→Option…,或直接按Alt+F7,选择Linker,选择Config,Linker Configurationfile中勾选Override default,添加C:\TexasInstruments\BLE-CC254x-1.4.0\Projects\ble\common\cc2540\cc254x_f256_imgA.xcl。


8) 点击Project→Option…,或直接按Alt+F7,选择Linker,选择Extra Output。


(9) Extra Option添加Hex文件的输出。


(10) 点击OK,编译下载,如果出现如下错误,是因为我们使用的是IAR8051 8.30版本,如果你使用的是IAR8.20版本就没有这问题。


(11) 这个问题是因为使用了虚拟寄存器导致的,我们找到如下文件。


(12) 对文件的115行进行如下修改,将虚拟寄存器注释掉。


(13) 编译后,可以看到我们生成的文件


(14) 我们将hex文件叠加到BIM后面


这样ImageA就成功烧录进开发板了。
配置Image B
(1) 方法如Image A,其它要注意的几个地方:点击Project→Option…,或直接按Alt+F7,选择C/C++Compiler,选择Preprocessor,将Defined symbols中的HAL_IMAGE_A改成B。


(2) 点击Project→Option…,或直接按Alt+F7,选择Linker,选择Config,将Linker Configuration file中的文件改为B。


(3) 保存后编译,同样的可以看到生成的文件。


(4) 为了区分A和B镜像,我们将最终结果改名。


空中升级
有了bin文件就可以进行空中升级了,打开BLE Device Monitor(没有安装的需要安装),打开后软件会自动扫描设备,如图,我们扫描到了开发板。


(2) 连接后,打开OAD


(3) 点击file,选择Progame(OAD),选择生成的bin文件,可以看到我们当前运行的是A固件


(4) 点击start,当进行到100%,就完成了固件空中升级。


(5) 升级后再次打开OAD选项,可以看到选择运行的固件已经是B版本的了。


注意:
要把 BLE协议栈BLE-CC254x-1.4.0 安装在C盘,在其他盘符下没有生成bin文件。


本文章转载自
http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/t/69222.aspx
请勿用于商业
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值