BLE学习(3)

介绍

上一篇主要介绍CH57x BLElib包的内容,这一篇将从TMOS开始介绍。

任务管理系统(TMOS)

概述

低功耗蓝牙协议栈以及应用均基于 TMOS(Task Management Operating System),TMOS
是一个控制循环,通过 TMOS 可设置事件的执行方式。对于一个任务,独一无二的任务 ID,
任务的初始化以及任务下可执行的事件都是不可或缺的。

TMOS特点

1)TMOS 实际上就是OSAL的简化版本,这是一个轮询实现的系统,不支持抢占任务;
2)TMOS 系统时钟单位为 625us, 时钟来源为RTC
3)多任务管理方式实际上只有一个任务在运行
4)可以使用任务调度的策略将多个任务进行调度,每个任务占用一定的时间,所有的任务通过时间分片的方式处理。

任务初始化

初始化任务需要调用 tmosTaskID=TMOS_ProcessEventRegister(pTaskEventHandlerFn eventCb)
函数,将事件的回调函数注册到 TMOS 中,并生成唯一的 8 位任务 ID。不同的任务初始化后任务 ID 依次递增,而任务 ID 越小任务优先级最高。协议栈任务必须具有最高的优先级。

halTaskID =TMOS_ProcessEventRegister(HAL_ProcessEvent );

任务事件及事件的执行

在任务初始化完成之后,TMOS 就会在循环中轮询任务事件,事件的标志存储在 16 位变量中,其中每一位在同一任务中对应一个唯一的事件。需要注意的是(0x8000)不可被定义,因为其对应的是 SYS_EVENT_MSG,即系统消息传递事件。

任务执行的基本结构如图所示,TMOS 根据任务的优先级轮询其是否有事件需要执 行,若有事件则执行相应的回调函数。当一个循环结束之后,若还有时间空余,系统会进入
空闲或睡眠模式。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值