1821_ChibiOS中的事件机制

         全部学习汇总: GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com)

1. 这里开篇就讲了ChibiOS中的事件机制非常强大,算是OS的一个子系统功能。提供了多事件等待、事件与线程多对多、异步广播同步检查等功能。

2. 事件机制涉及到的三个对类别分别是:事件源、事件监听器、事件标志位及线程。

3. 事件源涉及到的两个操作:注册、广播。

4. 什么是事件的状态位呢?以串口驱动涉及到的可能设计为例,这个状态可以是通信的接收、发送、校验以及报错等信息。

1. 把一个事件监听器注册到事件源上,同时会绑定一个线程。

2. 事件源跟监听器可以是一对多的,而监听器与线程是一对一的,但是这样的机制是可以支持事件源与线程的多对多关系的。

3. 事件的掩码有两种:有效掩码、PENDING标志。

1.每一个线程必须有一个不同的监听对象。

2.事件的等待可以是等待单一的事件,也可以是等待任意事件,或者是等待全部的事件一起发生。

这里给出来了两段伪代码,一个是通知注册到同一个事件源的全部监听器;另一个是事件可以由一个线程直接发送给另一个线程。

         关于事件的API是非常多的,也可以看得出来这个机制使用的灵活度非常高。

         这里给出来的一个例子处理了多个事件,处理的方式是等到任何一个事件都会触发wait的结果。接下来,根据返回的时间信息进行处理逻辑的拆分。

         第二个例子是涉及到中断的一个例程,ISR中给一个线程直接发信号触发一个动作。其实,很多操作系统中都是提供这样的机制的,主要是的作用是通过这种转换把很多裸系统中需要在ISR中处理的功能转移到线程中处理。不仅可以充分利用OS的线程管理能力,而且还可以保证中断的响应实时性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值