BLE开发笔记——简单新建属于自己的协议栈工程
本文主要讲一下新建TI的CC2541协议栈的工程。
前言
通过阅读BLE协议栈的开发手册,能够大体了解到协议栈的组成架构,并对每一层(PHY、LL、HCI、L2CAP、SM、ATT、GATT和GAP)具体是做什么也有了一定认识和理解,接下来通过一定的工程实践慢慢去深入学习,手册中也讲了内部的操作系统抽象层(OSAL),主要实现了轮询任务事件触发机制,是一个较简单的嵌入式系统,所以要做TI的蓝牙开发还要对OSAL的工作原理有一定理解,所有这些可以参考学习TI提供的官方手册。
正文
言归正传,本文主要讲的是利用TI协议栈工程新建属于自己定制的工程。首先说明的是,我讲的这种方式比较粗暴,哈哈。
简单说明工程结构
可以看到,一般情况下按照官方例程的工程来说就是上面的一种结构,根目录下有Components和Projects两个文件夹,Projects文件夹下又有common、config、Include、Libraries、Profiles和SimpleBLEPeripheral,SimpleBLEPeripheral文件夹下有CC2541DB和Source,根据这个结构,我们就可以通过复制粘贴来完成工程的复制新建了。
CC2541DB文件夹下放的就是工程文件,Source文件夹下放的是自己编写的源文件。
新建工程
新建文件夹
自己选择合适的目录,然后在其下建立文件夹,比如TestLED,在TestLED下新建文件夹Projects,再在Projects文件夹下建立ble文件夹。
拷贝文件夹
找到协议栈的安装目录,我的是C:\Texas Instruments\BLE-CC254x-1.4.0
,将整个文件夹Components拷贝到TestLED中,然后进入协议栈的Projects下的ble,将common、config、Include、Libraries、Profiles和SimpleBLEPeripheral六个文件夹放到TestLED–Projects–ble目录下,完成后的文件结构如下:
可以将SimplePeripheral文件夹修改为自己想要的名字,如TestLED。
验证工程
打开SimplePeripheral目录下的工程文件,进入IAR编译测试,一般是可以编译通过的。
工程配置
-
先清楚配置文件选择的位置,如下:
-
可以看到默认的配置选择的是
CC2541DK-MINI Keyfob
,为了保证原配置文件的安全,我们可以新建自己的配置,点击菜单栏Projects
->Edit Configurations...
,就会跳出以下窗口: -
选择
New...
,可以调出新建配置窗口: -
可以填入自己想要的配置名称,比如这里是TestLED,Toolchain当然是选8051,还有就是Based on configuration,这个我们要选择合适的,我选的是CC2541,点击OK完成,就可以看到工程配置就是TestLED了。
简单看一下Options
右击工程SimpleBLEPeripheral,选择options调出配置窗口,选择左边栏General Options
下的C/C++ Compiler
,然后在右侧选择Preprocessor
选项卡,如下:
-
看到Additional include directiories:(one per line),仔细观察每一行都有个
$PROJ_DIR$
,这代表的是工程文件所在的目录SimpleBLEPeripheral下的CC2541DB,再看就是还有..\
,代表的是上一层目录,所以就明白了之前为什么复制那些文件夹到相应目录了吧。 -
再看Defined symbols:(one per line),在这里编辑相应宏定义可以使用相应的HAL驱动和协议栈功能,比如其中的
HAL_LED=FALSE
,这就是说明不使用HAL的led灯控制功能,即IO输出。