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

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

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

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

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

蓝牙协议栈中的 OSAL相关推荐

  1. C语言蓝牙协议栈讲解,蓝牙协议栈记录—BTStack

    TSTack User Guid 翻译过来的 1.简介 2.BTStack 架构 BTStack在所实现的协议和服务之间采用很多状态机实现相互作用,特点: <1>单线程.BTStack只有 ...

  2. BlueTooth: 蓝牙协议栈的原理和结构

    蓝牙,这个已经不是什么新鲜的技术了,相信大多数人都是了解的.那么对于这方面,我们可以在嵌入式操作中进行一下实现.在蓝牙系统中,为了支持不同应用,需要使用多个协议,这些协议按层次组合在一起,构成了蓝牙协 ...

  3. BLE学习(1):蓝牙协议栈的介绍

    蓝牙官方(The Bluetooth Special Interest Group)定义了低功耗蓝牙(Bluetooth low energy,即LE)和基础/增强速率蓝牙(Bluetooth bas ...

  4. nrf52840蓝牙协议栈样例分析

      蓝牙SDK的example 文件夹提供了开发BLE的模板工程,它具有通用性,可以为自己开发工程提供参考.打开examples\ble_peripheral\ble_app_template文件夹下 ...

  5. 三种蓝牙架构实现方案(蓝牙协议栈方案)

    蓝牙架构实现方案有哪几种?我们一般把整个蓝牙实现方案叫做蓝牙协议栈,因此这个问题也可以这么阐述:蓝牙协议栈有哪些具体的架构方案?在蓝牙协议栈中,host是什么?controller是什么?HCI又是什 ...

  6. 蓝牙学习(二)-- 三种蓝牙架构实现方案(蓝牙协议栈方案)

     蓝牙架构实现方案有哪几种?我们一般把整个蓝牙实现方案叫做蓝牙协议栈,因此这个问题也可以这么阐述:蓝牙协议栈有哪些具体的架构方案?在蓝牙协议栈中,host是什么?controller是什么?HCI又是 ...

  7. 3种蓝牙架构实现方案(蓝牙协议栈方案)

    导言 不同的蓝牙架构可以用在不同的场景中.从而协议帧的架构方案也会不同. 转载自:https://www.cnblogs.com/schips/p/12293141.html <三种蓝牙架构实现 ...

  8. CC2540蓝牙协议栈开发简介

    本系列教程将结合TI推出的CC254x SoC 系列,讲解从环境的搭建到蓝牙4.0协议栈的开发来深入学习蓝牙4.0的开发过程.教程共分为六部分,本文为第三部分: 第三部分知识点: 第十一节 串口通信 ...

  9. 一起学nRF51xx 18 -  蓝牙协议栈烧录

    前言 在讲协议栈前我们先简要介绍一下NORDIC公司的协议栈特点: 1 协议栈和应用程序代码没有链接时间依存性,并可独立编译和更新 2 堆栈受运行时保护,应用程序访问受限或被阻止 3 堆栈为 100% ...

最新文章

  1. DotNet Core Console 程序使用NLog
  2. 线性表(二)——链表
  3. 新版ffmpeg PCM编码到AAC,swr_convert转换采样精度,稍微修改兼容PCM编码为G711A及MP3,记录下。
  4. 尝试为文件附加自动命名的数据库,但失败。已存在同名的数据库,或指定的文件无法打开或位于 UNC 共享目录中...
  5. 两种AIDL用法分析(原)
  6. Python3之多线程学习
  7. PyCairo 中的文本
  8. Silverlight之工具箱使用1
  9. 第二届360杯全国大学生信息安全技术大赛部分解题思路(加密解密题)
  10. 持续集成(一)思想篇
  11. git——IntelliJ中配置使用git,码云管理项目
  12. 【NLP】NLP中各种各样的编码器
  13. Luogu1712 [NOI2016] 区间
  14. unrar在linux如何编译,rarlinux(rar\unrar在linux使用)
  15. 模糊C均值聚类 C++代码
  16. 5分钟商学院-个人篇-谈判能力
  17. 台式计算机驱动程序未被安装,Win10提示该设备的驱动程序未被安装。(代码28)
  18. TIBCO Rendezvous
  19. 保洁阿姨看完都会了!熬夜肝完这份Framework笔记,吐血整理
  20. 蓝桥杯基础练习合集一(C语言) 1.A+B问题2.数列排序3.十六进制转八进制4.十六进制转十进制5.十进制转十六进制

热门文章

  1. 《Fast R-CNN》阅读笔记
  2. C# 学生简单管理系统 数据库 1.0版本
  3. FAST算法学习笔记
  4. mysql入门到跑路_MySQL 24小时入门笔记(3),插入和删除,删库到跑路
  5. 显示文字_如何观看HBO Max并显示中文字幕?
  6. docker helowin 迁移_禅道在docker上部署与迁移
  7. 逻辑回归之,sigmoid ,交叉熵
  8. TokenInsight:反映区块链行业整体表现的TI指数较昨日同期上涨0.54%
  9. SAP License:煤化工企业现场调研感想
  10. SAP License:SAP系统合规性审计介绍