TI的BLE支持空中固件升级,这是一个非常有意思的功能。今天我尝试了一下,下面把过程整理一下。
这是TI官方的视频,我基本就是照这个视频整理的。
上:http://focus.ti.com/cn/general/docs/video/Portal.tsp?entryid=0_nfn3dztm&lang=cn
下:http://focus.ti.com/cn/general/docs/video/Portal.tsp?entryid=0_0tlarhms&lang=cn
硬件平台:TI的BLE开发套件 CC2541 Mini Development Kit,包括CC-Debugger、USB Dongle、CC2541 Keyfob Demo
软件环境:IAR Embedded Workbench for 8051 IDE V8.20.2和TI的BLE Device Monitor V1.1.3,同时安装TI的BLE协议栈BLE-CC254x-1.4.0.
一:配置BIM(Boot Image Manger)
打开IAR,打开BLE-CC254x-1.4.0下的工程C:\Texas Instruments\BLE-CC254x-1.4.0\Projects\ble\util\BIM\cc254x\BIM.eww,然后编译,下载到Keyfob Demo中。
图1
二、配置Image A
1. IAR中,选择Project→Edit Configurations,选择New…,如图2所示,添加一个新的配置,起名就叫Image_A,点击OK,这时IAR界面的左边导航部分,就变成Image_A了,如图3。
图2
图3
2. IAR中左侧导航中,找到App文件夹下的keyfobdemo.c文件,双击打开,找到宏定义DEFAULT_ENABLE_UPDATE_REQUEST,将其改为FALSE(原来是TRUE),见图4。否则会影响BLE Device Monitor对其进行空中升级,到时可以再改回来。
图4
3. IAR左侧导航中找到Profile文件夹,点击右键添加oad_target.c和oad_target.h两个文件,见图5,二文件位于C:\Texas Instruments\BLE-CC254x-1.4.0\Projects\ble\Profiles\OAD中。
图5
4. 在IAR导航中找到HAL→Target→CC2540EB→Driver,右键添加文件hal_crc.c,见图6,该文件位于C:\Texas Instruments\BLE-CC254x-1.4.0\Components\hal\target\CC2540EB中。
图6
5. 在刚才的keyfobdemo.c文件中,找到KeyFobApp_Init()函数,在里面添加OADTarget_AddService()函数,见图7.
图7
6. 在keyfobdemo.c的前面,添加引用OAD的头文件,OAD.h和OAD_target.h,见图8.
图8
7. 点击Project→Option…,或直接按Alt+F7,选择C/C++ Compiler,选择Preprocessor,在Additional include directories中添加路径$PROJ_DIR$\..\..\Profiles\OAD,在Defined symbols中添加:
FEATURE_OAD
OAD_KEEP_NV_PAGES
FEATURE_OAD_BIM
HAL_IMAGE_A
图9
8. 点击Project→Option…,或直接按Alt+F7,选择Build Actions,在Post-build command line中添加:
"$PROJ_DIR$\..\..\common\CC2540\cc254x_ubl_pp.bat" "$PROJ_DIRquot; "ProdUBL" "$PROJ_DIR$\Image_A\Exe\KeyFobDemo"
注意,各双引号之间只有一个空格。见图10. 注意图中红框标的部分,Image_A是和之前第1步对应的。
图10
9. 点击Project→Option…,或直接按Alt+F7,选择Linker,选择Config,Linker Configurationfile中勾选Override default,添加C:\Texas Instruments\BLE-CC254x-1.4.0\Projects\ble\common\cc2540\cc254x_f256_imgA.xcl,如图11.
图11
10. 点击Project→Option…,或直接按Alt+F7,选择Linker,选择Output,按图12进行设置。
图12
11. 点击Project→Option…,或直接按Alt+F7,选择Linker,选择Extra Output,勾选Override file,Output format选择Intel-Extended,如图13所示。
图13
12. 点击Project→Option…,或直接按Alt+F7,选择Texas Instruments,选择Download,去掉Erase flash,如图14所示。
图14
13. 编译,下载板子中,编译时可能会出现如图15所示的脚本错误,忽略即可。
图15
用户377235 2014-11-6 14:55
有没有可以做空中升级的CC2541程序啊
379878003_830807656 2014-3-15 10:13