由浅入深,蓝牙4.0/BLE协议栈开发攻略大全(5)
DATE_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文件。
第二十五节 SBL串口升级
SBL升级和OAD升级的配置步骤都是一样的,主要是配置的参数不一样,下面我们来配置一个SBL升级的固件。
配置SBL
打开IAR,打开BLE-CC254x-1.4.0下的工程C:\TexasInstruments\BLE-CC254x-1.4.0\Projects\ble\util\SBL\iar\cc254x\sbl.eww,然后编译,下载到开发板中。
配置Bin文件
(1) 添加宏
MAKE_CRC_SHDW
FEATURE_SBL
OAD_KEEP_NV_PAGES
(2) 添加build选项
"$PROJ_DIR$\。。\。。\common\cc2540\cc254x_ubl_pp.bat""$PROJ_DIR$" "ProdUBL" "$PROJ_DIR$\MT254xboard\Exe\SBLExample"
(3) Config选项
(4) Extra Output选项
(5) 保存编译
(6) 打开串口升级软件SerialBootTool.exe,选择SBLExample.bin文件。
(7) Load Image
这样我们的SBL固件就制作完毕了。
- 主流蓝牙BLE控制芯片详解(3):创杰 IS1685S(07-18)
- 苹果光环加持,蓝牙Beacon技术成室内定位应用最大黑马(08-02)
- 主流蓝牙BLE控制芯片详解(4):Nordic nRF51822(07-20)
- 蓝牙BLE之室内定位iBeacon应用测验(08-02)
- 由浅入深,蓝牙4.0/BLE协议栈开发攻略大全(2)(07-18)
- 由浅入深,蓝牙4.0/BLE协议栈开发攻略大全(1)(07-13)