btstack编译与运行

记录一下编译和运行开源蓝牙协议栈btstack的过程。

btstack蓝牙协议栈的GitHub网址:https://github.com/bluekitchen/btstack

一、环境介绍

使用的环境是win10系统,virtual box软件,在virtual box软件上安装了Ubuntu 20.04系统。

二、btstack下载

btstack下载可以直接访问上文GitHub网址,选择使用网址下载或者下载zip。使用网址下载

btstack需要使用git软件,需要在win10或者Ubuntu虚拟机中有git软件。

在git软件中输入命令下载代码

git clone https://github.com/bluekitchen/btstack.git

三、btstack编译

目前自己有Ubuntu20.04虚拟机和stm32F4开发板,所以想尝试在这两个环境下运行btstack。

  • 编译运行在Ubuntu20.04环境下的btstack

通过阅读btstack工程目录结构发现在port目录下有libusb文件夹这个便是对应运行在Ubuntu系统的程序,基于自己现有的Ubuntu20.04虚拟机环境,切换到port/libusb/目录下执行make命令编译工程。

在编译的过程中遇到了报错发现没有libusb.h文件,百度了一下发现需要安装libusb-1.0-0-dev和libusb-1.0-doc软件包。安装过后编译通过了。

  • 编译运行在stm32F4环境下的btstack

port目录下的stm32-f4discovery-usb正是对应开发的型号,基于自己现有的Ubuntu20.04虚拟机环境,切换到port/stm32-f4discovery-usb/目录下执行make命令编译工程。

在编译的过程中遇到了报错发现需要搭建交叉编译环境,安装gcc-arm-none-eabi安装包。安装后编译成功。安装软件使用了Ubuntu20.04的新立得软件synaptic来对软件升级和安装。也可以在命令行中输入命令来安装软件包。

例如:

 sudo apt-get install libusb-1.0-0-dev
 sudo apt-get install gcc-arm-none-eabi

四、btstack运行

btstack主要包含了蓝牙协议栈的profile以及针对不同环境实现对应的驱动。所以想将btstack运行起来并连接其他蓝牙设备需要有另外的蓝牙controller和射频模块。手上正好有一个USB蓝牙适配器是CSR 8510 A10芯片,可以直接插到电脑上和stm32F4开发板的USB接口上。

  • 在Ubuntu虚拟机上运行btstack

在port/libusb目录下输入命令即可运行btstack的例程

sudo ./a2dp_sink_demo

可以阅读example下面的程序源码输入stdin命令来操作btstack协议栈。

  • 在stm32F407开发板上运行btstack

 使用stm32串口下载工具FlyMcu.exe来下载程序到stm32F407,可执行文件在port/stm32-f4discovery-usb/build目录下面。下载完之后可以连接手机。但是目前没有看到串口上输出日志,有空会继续研究将日志输出的代码添加上。

  • 在使用ubuntu虚拟运行btstack时遇到虚拟机不识别USB设备的问题通过如下连接解决:

https://www.cnblogs.com/m2mer/p/8075069.html

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值