uC/OSII 中各种事件管理方式的一般规律
来源:互联网 发布:手机淘宝没有延长收货 编辑:程序博客网 时间:2024/06/01 07:52
uC/OSII中的事件管理方式通常包括:信号量管理、互斥信号量管理、事件标志组管理、消息邮箱管理、消息队列管理。这些事件管理方式各有异同,下面我简单的说说其中的异同点。
相同之处:
1、一般包含有OSxxxCreate()、OSxxxPend()、OSxxxPost()以及OsxxxDel()这几种不可或缺的函数,在使用一个事件管理方式程序时:创建、请求、提交、删除必不可少;
2、创建函数一般是从事件空闲表中取出一个初始化赋值;
3、请求函数一般是先进行参数检查然后是检查有没有相关的资源,有就直接返回函数继续执行后面的语句,没有就阻塞本任务到事件结构体中,随后进行一次调度把自己阻塞,在随后经过几次CPU控制权的变化在执行本任务时就检查请求是否成功,最后整理一下TCB中的各个标志;
4、提交函数一般先是进行参数的检查,然后检查事件标志组中有没有阻塞的事件,有就将事件就绪(这个就绪就相当于把之前请求资源函数给激活,免去了一直请求函数等待标志有效的循环,这么做是非常高明的),没有就将资源数量加一,然后返回;
5、删除函数一般分两种情况:一是没有任务等待该资源就删除,二是无论如何都删除,对应的两种删除处理方式也都是在各种事件管理方式中差不多相同的,只要知道其中的一种,就应该估计的出来其他事件管理方式删除具体操作;
不同之处:
1、不同的事件管理方式所对应的数据结构一般不同,最核心的是结构体不同,结构体包含的内容一般都与事件管理的具体应用要求有关;
2、不同事件管理方式适用于不同的情况下,要根据具体的要求而定;
3、不同的事件管理所用进行请求和提交时所用的标志不同,而标志是核心中的核心,影响整个事件管理的算法;
目前我只是总结到这些异同,要知道其中的奥妙还得啃源码,把源码看懂再进行一些总结有助于从整体上理解每个函数每个标志的意义。
- uC/OSII 中各种事件管理方式的一般规律
- 对uC/OSII 事件标志管理的理解
- uC/OSII的任务 学习笔记
- uC/OSii 的学习笔记 (1 )
- uC/OSii 的学习笔记 ( 2 )
- uc-osII实时操作
- 基于uC/OSII多任务的STM32报警模块
- uC/osii移植到stm32的详细步骤
- 关于网络设备的定义和设备间连接方式一般规律
- 学着使用uC/OSII
- uc-osII实时操作1
- uc-osII实时操作2
- uc-osII实时操作3
- 嵌入式用户图形接口uC/GUI在uC/OSII上的嵌入
- 初学者EFM32上移植uC/OSII
- UC/OSII源码阅读知识点(第一章)
- 初学者EFM32上移植uC/OSII
- 使用widget控件的一般规律!!!
- 网格部件界面数据过滤介绍
- c++引用
- 获取整机应用信息以及启动界面(通过adb启动应用)
- auto_ptr、shared_ptr、weak_ptr、scoped_ptr用法小结
- Hibernate条件查询
- uC/OSII 中各种事件管理方式的一般规律
- JPA 延迟加载
- 基于用户投票的排名算法(五):威尔逊区间
- JAVA中获取当前系统时间
- duilib学习笔记
- Android Studio 代码混淆
- Winform线程队列的使用,模拟下载等待功能
- QWidget,QMainWindow和QDialog的区别 .
- Hibernate懒加载分析