蓝牙 - 协议栈库文件及应用示例(TI Bluetopia Platform Manager SDK)

 

拿到TI的CompanyName_toolchain_built_Distribution_3_5.tar.gz,里面有Linux平台下使用自定义交叉编译链编译的蓝牙协议栈的库文件,以及里面一些应用的例子程序,可以方便开发蓝牙应用时参考。

解压得到如下文件结构:

build文件夹下有如何编译SDK中的sample程序的例子的说明文件:Buildinstructions。

1,将setup-bt.sample复制一份,改名为setup-bt

2,修改其中的toolchain和kernel source的路径:

# Path to local toolchain installation

export TOOLCHAIN_PATH=/opt/poky-gen7/version1.0/sysroots/



# Path to SDK compiled kernel

export KERNEL_PATH=~/linux/4.1.15-r0/build/

这需要一份Linux kernel source,在自己的build环境中找到使用的kernel source。

比如yocoto编译的话,kernel source路径就是:

yocto-bsp/build/tmp/work/proj-poky-linux-gnueabi/linux/4.1.15-r0/build

可以拷贝一份,或者直接指定这个路径。

3,然后根据需要修改build/proj文件夹下的*.mak文件。

因为我们的toolchain是自己定制的,所以检查下toolchain-defs.mak文件是否需要修改:

TOOLCHAIN_PATH_NATIVE=$(TOOLCHAIN_PATH)/x86_64-pokygen7sdk-linux/

TOOLCHAIN_PATH_TARGET=$(TOOLCHAIN_PATH)/cortexa7t2hf-neon-poky-linux-gnueabi

TOOLCHAIN_PREFIX=arm-poky-linux-gnueabi

ARCH=arm

这里面是toolchain下面的交叉编译工具链的PC host平台的工具,以及目标平台的工具。

还有LDFLAGS修改:

LDFLAGS+=-lpthread -lm -lrt --sysroot=$(TOOLCHAIN_PATH)/cortexa7t2hf-neon-poky-linux-gnueabi -no-pie

改为:

LDFLAGS+=-lpthread -lm -lrt --sysroot=$(TOOLCHAIN_PATH)/cortexa7t2hf-neon-poky-linux-gnueabi -no-pie -Wl,--dynamic-linker=/lib/ld-linux-armhf.so.3

要手动指定dynamic linker的库,这个库是在目标板子上的,然后编出来的例子程序才能在目标板上执行。

5,然后在build目录下执行:

$ source ./setup-bt

$ source ./configure.sh

$ make

我这个版本提示有个错误,

../BluetopiaPM/Bluetopia/profiles_gatt/sample/LinuxSPPDMMulti/LinuxSPPDMMulti.c:38:10: fatal error: PLATVER.h: No such file or directory

   38 | #include "PLATVER.h"             /* Bluetopia over STM32 platform Version.    */

找到这个头文件在\BluetopiaPM\include里,放到\BluetopiaPM\Bluetopia\include文件夹里,然后编译OK。

生成的Sample的程序,在\BluetopiaPM\bin和\BluetopiaPM\Bluetopia\bin目录下。

--------------------------------------------- 

还有一些准备工作要做。

在目标板上还需要添加一些蓝牙协议栈要使用的文件。

/lib/firmware/TIInit_6.12.26.bts

/home/root/tibt/config

这两个文件,第一个是蓝牙协议栈启动所需要的硬件配置,我手里芯片上的内容是:

nshutdown_gpio=18

tty=/dev/ttymxc2

flow_cntrl=1

baud_rate=115200  

第一行表示蓝牙的reset pin,用来重启蓝牙芯片。

第二行是蓝牙使用的UART资源。

第三行表示使用流控。

第四行表示UART波特率,通常启动后是115200,为了提高蓝牙数据吞吐率,也可以根据实际硬件信号情况提升波特率,比如改成3000000。

第二个文件是蓝牙启动后,会通过HCI把bts文件发送到蓝牙controller芯片,更新蓝牙固件,比如更新前显示蓝牙协议栈版本是Bluetooth Core Specification 4.1,这个文件更新完就变成了Bluetooth Core Specification 4.2。

--------------------------------------------  

在\BluetopiaPM\Bluetopia\bin里找到想要使用的例子程序,比如LinuxHOGP。

这个是BLE HID的profile的应用的例子程序。

将这个文件copy到目标板上:(目标板上有SSH server, 假如IP设置是192.168.10.10,使用scp来传递文件)

$ scp ./LinuxHOGP  root@192.168.10.10:/tmp

$ /tmp/LinuxHOGP

然后就能运行这个程序,来测试蓝牙功能了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

夜流冰

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值