CN / EN
CN / EN

提问

获得支持

您的项目私密技术问题如需获得一对一支持,请点击下方联系我们。

在FreeRTOS例程里面,蓝牙协议栈是以一个什么形式存在? GR551x

已解决

Angelo

2021-09-04 14:42

我想了解一下蓝牙协议栈是以什么形式在FreeRTOS里面运行的。看上不去并不是任务,因为我没有发现协议栈任务存在。猜测是中断驱动的常驻内存函数。不知道理解是否对?怎么能从代码中看出来呢?多谢!

0收藏

0赞成

最佳答案

Gang

2021-09-06 11:19

协议栈是通过消息驱动的,消息是在sdk中断中处理的

比如app调用start adv的接口,会经历如下几个阶段:

1. app调用sdk api

2. sdk将该api转换成消息,发出去,目的地host

3. sdk中断处理该消息,识别到目的地是host,调用host对应接口

4. host接口中转换成消息,发出去,目的controller

5. sdk中断处理该消息,识别到目的地是 controller ,调用 controller 对应接口

6. controller接口中配置baseband,开始广播


和协议栈关联的主要有两种中断:

1. sdk中断,优先级较低,类似于背景线程的作用,用于实现消息的轮转

2. ble中断,优先级较高,主要用于接收数据或者事件调度



1条评论

0赞成

0收藏

您的评论

登录后可回答问题,请 注册

我们时刻倾听您的声音
联系销售

扫描关注公众号

打开微信,使用“扫一扫”即可关注