博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
蓝牙协议栈中的 OSAL
阅读量:4699 次
发布时间:2019-06-09

本文共 437 字,大约阅读时间需要 1 分钟。

蓝牙协议栈里的操作系统叫做 OSAL(操作系统抽象层)。它并非一个真正意义上的操作系统,它只是实现了操作系统的一些功能,如任务切换、内存管理。

OSAL 产生的根源:基于蓝牙协议栈开发的产品,实际上是一个应用层的应用程序,而每个应用程序可以看成是一个任务,为了实现多个任务的切换、同步、互斥等,这时就需要一种机制来管理任务,而这种机制就是OSAL。

在BLE 4.0的协议栈中,任务被放在一个任务表里(我觉得任务和事件在此处应该是表达的一个意思),且每个任务对应这个任务的处理函数(用函数指针实现)。在协议栈运行之后,任务(事件)指针轮询任务表,当某个事件发生时进入其事件处理函数。这就是蓝牙协议栈的精髓吧。  

在main()中,执行完 osal_start_system() 后整个协议栈才算是启动了,这个函数是实现 OSAL 的精髓,学习的部分有很多,体会如下:

 

转载于:https://www.cnblogs.com/lweleven/p/ble_osal.html

你可能感兴趣的文章
prompt不生效之解决
查看>>
编译Sqoop2错误解决
查看>>
2.动手动脑
查看>>
CS100.1x Introduction to Big Data with Apache Spark
查看>>
MyBatis学习总结_Mybatis查询之resultMap和resultType区别
查看>>
provider and $provide.decorator
查看>>
如何使用WebUploader。
查看>>
在微信中调用ajax出现的问题
查看>>
文本区域的高度随着内容增加----插件
查看>>
d3d3
查看>>
CentOS7安装.NET Core运行环境
查看>>
TableAdapter和DataAdapter有何区别
查看>>
2008已经到来,我们怎能原地踏步!
查看>>
fedora 安装chrome
查看>>
【javascript】简单原型链、借用构造函数
查看>>
PHPCMS V9.6.0 SQL注入漏洞EXP
查看>>
【原创】大叔问题定位分享(11)Spark中对大表子查询加limit为什么会报Broadcast超时错误...
查看>>
JavaScript面向对象编程(2)-- 类的定义
查看>>
Apache vs Nginx vs Tomcat vs JBoss vs Jetty
查看>>
关于vue+element-ui项目的分页,返回默认显示第一页的问题解决
查看>>