首页 资讯 应用 高压 设计 行业 低压 电路图 关于

嵌入式

旗下栏目: PLC 嵌入式 单片机 DCS

如何添加BLE工程空中升级服务

嵌入式 | 发布时间:2017-11-26 | 人气: | #评论# |本文关键字:BLE,蓝牙,空中升级
摘要:蓝牙空中升级的升级文件需要两个升级文件,分别由ImageA与ImageB两个文件生成。所以为了让蓝牙设备能够支持空中升级功能,除了向工程添加必要的的Profile外,还需要另外建立一个ImageA工程与

蓝牙空中升级的升级文件需要两个升级文件,分别由ImageA与ImageB两个文件生成。所以为了让蓝牙设备能够支持空中升级功能,除了向工程添加必要的的Profile外,还需要另外建立一个ImageA工程与一个ImageB工程,来生成的苏需要的两个升级文件。下面以SimpleBLEPeripheral工程为例,讲述如何添加空中升级功能。

一、ImageA工程的建立

1. 选择菜单栏Project->Edit Configurations->New...然后基于原先工程的配置再添加一个新配置,取名为CC2541-OAD-ImgA。

BLE工程—添加空中升级服务

BLE工程—添加空中升级服务

2. 开始编译,保证没有编译错误。

3. 选择菜单栏Project->Options->C/C++ Compiler->Preprocessor->Defined symbol,然后添加下面4个新的定义:

FEATURE_OAD 

OAD_KEEP_NV_PAGES

FEATURE_OAD_BIM 

HAL_IMAGE_A

接着添加OAD配置文件的目录到”Additional include directeries”中:

$PROJ_DIR$\..\..\Profiles\OAD

最后添加oad_target.c、oad_target.h和oad.h这三个文件到工程中。

BLE工程—添加空中升级服务

4. 打开SimpleBLEPeripheral.c文件,在SimpleBLEPeripheral_init()函数中添加如下语句:

#if defined FEATURE_OAD

   VOID OADTarget_AddService();

#endif

5. 在SimpleBLEPeripheral.c的最开始出添加OAD的头文件,如下:

#if defined FEATURE_OAD

  #include "oad.h"

  #include "oad_target.h"

#endif

6. 选择菜单栏Project->Options->Build Actions->Post-build command line中添下面语句(注意:每条命令用逗号隔开)。

"$PROJ_DIR$\..\..common\cc2540\cc524x_ubl_pp.bat" "$PROJ_DIR$" "ProdUBL" "$PROJ_DIR$\CC2541-OAD-ImgA\Exe\SimpleBLEPeripheral"

注意:目录视具体工程而定。

BLE工程—添加空中升级服务

7. 选择菜单栏Project->Options->Linker->Config->Linker configuration file,添加下面语句:

$PROJ_DIR$\..\..\common\cc2540\cc254x_f256_imgA.xcl

BLE工程—添加空中升级服务

8. 选择菜单栏Project-option->linker->Output->format勾上Allow C-SPY-specific extral output file。

BLE工程—添加空中升级服务

9. 选择菜单栏Project->Options->Linker->Extra Output,选择Format下的Output format为simple-code。

BLE工程—添加空中升级服务

10. 选择菜单栏Project->Options->Linker->Extra Options,勾上Use command line options前面的复选框,并在Command line options下的编辑框下输入:

-Ointel-extended,2=.hex

BLE工程—添加空中升级服务

11. 选择菜单栏 Project -Options->Debugger->Texas instruments->Download原先的Erase flash前面的勾去掉。

BLE工程—添加空中升级服务

12. 打开工程下的CC2541-OAD-ImgA/Exe目录,就可发现生成4个文件,如下:

BLE工程—添加空中升级服务

.bin文件就是升级是需要用的二进制文件,.hex文件则用于下载工程程序用。

二、ImageB工程的建立

同样的步骤,新建ImageB工程取名为:CC2541-OAD-ImgB,并以ImageA配置为基础。然后修改下面三处即可。

1. 在菜单栏Project->Options->C/C++ Compiler->Preprocessor->Defined symbol下原来的HAL_IMAGE_A改成HAL_IMAGE_B。

BLE工程—添加空中升级服务

2. 将菜单栏Project->Build Actions->Post-build command line中原先:

"$PROJ_DIR$\..\..\common\cc2540\cc254x_ubl_pp.bat" "$PROJ_DIR$" "ProdUBL" "$PROJ_DIR$\CC2541-OAD-ImgA\Exe\SimpleBLEPeripheral"

改成:

"$PROJ_DIR$\..\..\common\cc2540\cc254x_ubl_pp.bat" "$PROJ_DIR$" "ProdUBL" "$PROJ_DIR$\CC2541-OAD-ImgB\Exe\SimpleBLEPeripheral"

3. 将菜单栏Project->Options->Linker->Config->Linker configuration file原先的:

$PROJ_DIR$\..\..\common\cc2540\cc254x_f256_imgA.xcl

改成:

$PROJ_DIR$\..\..\common\cc2540\cc254x_f256_imgB.xcl

BLE工程—添加空中升级服务

责任编辑:BLE工程
首页 | 资讯 | 应用 | 高压 | 设计 | 行业 | 低压 | 电路图 | 关于

Copyright 2017-2018 电气自动化网 版权所有 辽ICP备17010593号-1

电脑版 | 移动版

Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。