本篇博文最后修改时间:2016年12月23日,13:53。
一、简介
本文以SimpleBLEPeripheral工程为例,介绍如何使用串口方式下载。
二、实验平台
协议栈版本:BLE-CC254x-1.4.0
编译软件:IAR 8.20.2
硬件平台:Smart RF(主芯片CC2541)
下载软件:SerialBootTool-v1.3.2
三、版权声明
博主:甜甜的大香瓜
声明:喝水不忘挖井人,转载请注明出处。
原文地址:http://blog.csdn.NET/feilusia
联系方式:897503845@qq.com
香瓜BLE之CC2541群:127442605
香瓜BLE之CC2640群:557278427
Java零基础入门交流群:541462902
四、参考文章
1、ti官方文档:
http://processors.wiki.ti.com/index.php/SerialBootLoader?keyMatch=serial%20bootloader%20CC254x&tisearch=Search-CN-Everything
五、基础知识
1、什么是SBL?
答:Serial Bootloader(SBL)是串口启动的意思,类似与Over-the-Air Download(空中下载),可以理解为一种串口下载的方式。
2、为什么要用SBL?
答:串口下载只是传统单片机的下载方式,对于蓝牙芯片来说更多使用的是OAD,因此香瓜认为CC2541上的SBL的使用意义并不大。
3、SBL原理是什么?
答:
如上图,
下载原理:我们通过CC Debugger将SBL的启动代码烧录至CC2541flash中的page0处,再通过串口下载我们开发的bin进中间的“Empty Flash”区域,其中最末尾的2个page是snv存储区。
执行原理:芯片上电后首先执行page0的SBL代码,随后检测到有应用代码,则会跳转至我们的应用代码处执行。
4、SBL串口下载工具在哪里下载?
答:
http://processors.wiki.ti.com/index.php/File:SerialBootTool_1_3_2.zip
六、实验步骤
1、Smart RF通过CC Debugger下载SBL
1)打开SBL工程,工程路径如下:
C:\Texas Instruments\BLE-CC254x-1.4.0\Projects\ble\util\SBL\iar\cc254x
2、编译SBL可用的应用bin
1)新建配置
Project->Edit Configurations->New
2)选择最新添加的CC2541-SBL-GUA,rebuild all确保工程是正确的。
3)新增宏
MAKE_CRC_SHDW
FEATURE_SBL
OAD_KEEP_NV_PAGES
其中,OAD_KEEP_NV_PAGES是为了保证SNV数据不被清除。
4)修改linker配置
注意,这里xcl的路径为绝对路径。
①如果你选择到c盘的协议栈demo中的xcl路径,方便改动工程路径时不报错(推荐):
C:\Texas Instruments\BLE-CC254x-1.4.0\Projects\ble\common\cc2540\cc254x_f56_sbl.xcl
②如果你选择到当前工程的xcl路径,在改动工程路径后,将会报以下类似的错误:
此时需要重新选择xcl的绝对路径,才能解决。
5)修改输出配置
6)修改Build Actions
"$PROJ_DIR$\..\..\common\cc2540\cc254x_ubl_pp.bat" "$PROJ_DIR$" "ProdUBL" "$PROJ_DIR$\CC2541-SBL-GUA\Exe\SimpleBLEPeripheral"
注意最后的地址要根据自己工程位置而定。
7)修改工程中的批处理文件cc254x_ubl_pp.bat
@echo off
%~d1
chdir %1\..\..\common\cc2540
start cc254x_ubl_pp.js %2 %3 %4 %5
根据自己的工程找到对应的位置:
……\BLE-CC254x-1.4.0\Projects\ble\common\cc2540\
通过文本编辑器编辑该批处理文件。
注:如果不做此步,很可能无法生成bin。
详情见http://e2e.ti.com/support/wireless_connectivity/f/538/t/314089
8)rebuld all,检查是否生成bin
如果没有生成,请仔细检查前面的步骤是否做对。
3、使用SerialBootTool-v1.3.2下载bin
1)拔掉CC Debugger,使用开发板的USB口接PB的USB口。
2)打开对应的串口
3)选择我们上文中生成的支持SBL的bin文件,下载
4)下载中的显示
5)下载完成
4、测试
复位开发板,此时用手机app搜索设备,即可搜索到广播。实验成功。