【BLE】CC2541之SBL

本篇博文最后修改时间: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

香瓜单片机之STM8/STM32群:164311667
甜甜的大香瓜的小店(淘宝店):https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i


、参考文章

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)选择下图的工程配置,然后rebuild all、仿真下载


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搜索设备,即可搜索到广播。实验成功。


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

甜甜的大香瓜

谢谢你的支持^_^

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值