博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TMOS使用说明
阅读量:2095 次
发布时间:2019-04-29

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

 

TMOS使用说明

 

TMOS 系统时钟单位为 625us,以 RTC 为基准得到所有需要系统的时间。

任务管理  —  多任务管理方式实际上只有一个任务在运行,但是可以使用任务调度的策略将多个任务进行调度,每个任务占用一定的时间,所有的任务通过时间分片的方式处理。

 

extern bStatus_t tmos_set_event( tmosTaskID taskID, tmosEvents event );

此函数将建立一个在taskID层生效的,名为event的任务,并立即生效

 

 

 

 

 

 

extern bStatus_t tmos_start_task( tmosTaskID taskID, tmosEvents event, tmosTimer time  );

此函数将建立一个在taskID层生效的,名为event的任务,并延迟time*625us后生效

 

 extern bStatus_t tmos_stop_task( tmosTaskID taskID, tmosEvents event );

此函数将停止一个会在taskID层生效的,名为event的任务,调用此函数后,该事件任务将不会生效。

 

任务调度函数使用注意事项:

  1. 禁止在中断中调用
  2. 建议不要在单个任务中执行超过连接间隔一半时长的任务,否则将影响蓝牙通讯
  3. 同理,在中断中建议不要执行超过连接间隔一半时长的任务,否则将影响蓝牙通讯
  4. 在事件生效执行的代码中调用延时执行函数时,延时时间以当前事件生效时间点为基准偏移,所以对调用延时执行函数在生效执行的代码中摆放的位置没有要求。
  5. 任务存在优先级,根据在xxx_ProcessEvent函数中判断的先后顺序决定,同时生效的任务,先执行先判断,后执行后判断。注意,执行完先判断的事件任务后,要等到任务调度系统轮巡一遍后,才会执行后判断的事件任务。
  6. 事件名按位定义,每一层taskID最多包含1个消息事件和15个任务事件(共16位)

 

消息管理  —  消息是一个带有数据的事件,用于协议栈各层之间传递数据,支持同时添加多个消息。

 

extern u8   *tmos_msg_allocate( u16 len );

申请内存函数,发送消息之前需要先给消息申请内存空间。如果返回为NULL,则申请失败。

 

extern bStatus_t tmos_msg_send( tmosTaskID taskID, u8 *msg_ptr );

发送消息函数,参数为消息想要发送到哪一层的taskID以及消息指针。当调用此函数时,对应参数taskID层的消息事件将会立即置1生效。

 

extern u8   *tmos_msg_receive( tmosTaskID taskID );

接收消息函数,参数为想要接收哪一层的taskID。

 

extern bStatus_t tmos_msg_deallocate( u8 *msg_ptr );

释放消息占用内存的函数,处理完消息后需要释放内存占用。

 

消息管理使用范例:

 

 

 

 

 

转载地址:http://xcuhf.baihongyu.com/

你可能感兴趣的文章
JVM内存空间
查看>>
Docker 守护进程+远程连接+安全访问+启动冲突解决办法 (完整收藏版)
查看>>
从零写分布式RPC框架 系列 2.0 (4)使用BeanPostProcessor实现自定义@RpcReference注解注入
查看>>
Java 设计模式 轻读汇总版
查看>>
Paxos学习笔记及图解
查看>>
深入解析Spring使用枚举接收参数和返回值机制并提供自定义最佳实践
查看>>
数据序列化框架——Kryo
查看>>
布隆过滤器(BloomFilter)——应用(三)
查看>>
MPP架构数据库优化总结——华为LibrA(MPPDB、GuassDB)与GreenPlum
查看>>
Spark代码可读性与性能优化——示例七(构建聚合器,以用于复杂聚合)
查看>>
Spark代码可读性与性能优化——示例八(一个业务逻辑,多种解决方式)
查看>>
简单理解 HTTPS
查看>>
简单理解 NAT
查看>>
RPC框架——Thrift简单示例
查看>>
RPC框架——gRPC简单示例
查看>>
JVM对象头的简单记录
查看>>
从Java代码到Java堆——理解并优化你的应用的内存使用量
查看>>
Redis持久化与过期机制
查看>>
关于在网络中使用BIO、NIO、AIO的示例
查看>>
网络通信框架——Netty示例
查看>>