搜档网
当前位置:搜档网 › CC2540 OAD在线固件升级 使用手册

CC2540 OAD在线固件升级 使用手册

CC2540 OAD在线固件升级 使用手册
CC2540 OAD在线固件升级 使用手册

硬件平台: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\Prodjects\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

三、配置Image B

方法如Image A,也是选择Project→Edit Configurations,选择New…,添加Image_B,如图16. 其他的,在工程中添加文件,文件中添加代码等都已经在配置Image A时完成。

图16

其他要注意的几个地方:

1. 点击Project→Option…,或直接按Alt+F7,选择C/C++ Compiler,选择Preprocessor,将Defined symbols中的HAL_IMAGE_A改成B,见图17.

图17

2. 点击Project→Option…,或直接按Alt+F7,选择Build Actions,修改Post-build command line 中的路径,改为Image_B,如图18所示。

图18

3. 点击Project→Option…,或直接按Alt+F7,选择Linker,选择Config,将Linker Configuration file中的文件改为B,如图19所示。

图19

可以编译生成Hex文件后下载,注意,配置Image B生成Hex文件这一步并不是必须的。四、生成bin文件

这一步是非常重要的,因为空中升级,目前只支持bin文件。以Image B为例,当然,也可以是Image A.

1. 在Image B工程中,点击Project→Option…,或直接按Alt+F7,选择Linker,选择Extra Output,勾掉Override file,Output format选择simple-code,如图20所示。

图20

2. 打开之前添加的OAD_target.c文件,找到宏定义OAD_IMAGE_VERSION,将其改为0x0002(原来是0x0000),如图21所示。

图21

编译后,在EXE文件夹中会生成bin文件。

五、空中升级

有了bin文件就可以进行空中升级了,找开BLE Device Monitor,同时打开KeyFobDemo,按键广播,Monitor会扫描到KeyFobDemo,点击connect之后,在Event log中会出现:

图22

点击file,选择Progame(OAD),选择生成的bin文件,可以看到版本的不同:

图23

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

图24

记录:

1)要把 BLE协议栈BLE-CC254x-1.4.0 安装在C盘,在其他盘符下没有生成bin文件,不知道什么原因。我的系统是win7的,不知道有没有关系。

相关主题