本文适用范围
ADK22.3~
问题/功能描述
实现方案
如下图是CSR Synergy Bluetooth目录结构
bt目录 应用协议层
Porting: Trusted Device database实现,主要用于保存蓝牙设备信息
profile_managers:蓝牙栈(包括配置、协议、核心)
Config 包含功能配置、编译配置文件
Inc 包含头文件,模块内部使用不公开给应用层。
Frw目录 synergy框架层
Bsp(Board Support Package)依赖平台特定功能,主要包括任务调度、消息转发、内存、计时器、中断、panic等和平台密切相关的底层接口
Gsp(Generic Support Package)通用功能基本和平台无关接口实现
Inc目录
公开接口的头文件给到上层application使用的
Service目录
模块基于平台创建的task运行管理和其它task交互
综上可以了解,一个新工程创建,首先是config目录里面对需要定制功能修改,基本就是宏定义形式。研发主要关注在bt目录下面具体到每个协议的实现,涉及到代码修改也多是在这里进行。若是上层调用主要在inc目录找对应的接口函数。其它目录基本不会有改动。
常见问题
1.还可以使用老软件蓝牙协议代码吗
目前代码是可以的。它不支持LE audio,后续也不会升级,所以不推荐使用
2.有没有官方文档介绍说明
有的可以参考文档80_13827_1,80-34461-1
3.可以支持哪些profile
基本statck已经实现了据大部分的profile,不过应用层只有和耳机相关的几个profile的使用代码。如果用在车载或其他产品需要自行实现应用层
4.协议使用有什么额外费用吗
没有,代码开放免费使用
5.以前蓝牙相关代码还可以移植过来吗
应用层的还有借鉴作用,底层的代码都要推倒重来。
评论