手把手教你学用嵌入式操作系统

  1. 主页
  2. 手把手教你学用嵌入式操作系统
  3. 第8章 综合实例
  4. 外部事件处理

外部事件处理

内容纲要

本节课时主要演示了怎样对外部的多个事件进行监控处理。

主要内容

本节课程的主要问题是解决怎样使用RTOS的组件对系统中的各种事件进行集中处理。 我们使用了一个任务集中处理这些事件,实际你也可以创建多个任务,每个任务负责处理至少一个事件。

主要有两个知识点需要关注。

事件监控管理

系统中要监控和管理两个事件,一是按键事件;二是多个外部中断事件。

在前面课时讲多事件的同步时,有讲到过可以用邮箱/事件标志组进行管理,这里选用的是事件标志组,如下图所求。

其中对于按键事件,只是用了一个标志位表明有某个按键按下,但具体是哪一个则需要进一步调用按键驱动,从其内部的键值缓冲区中获得。而对于中断事件,可直接使用事件标志组的标志。

当然,我们也可以使用邮箱来管理,但是相对而言,使用事件标志组更简单、更节省资源。

回调函数

课程中讲到了设置回调函数,这样可以减少后期可能地代码维护工作量。在需要修改代码时,无需再深入到原驱动内部修改代码,只需要在驱动外部修改传入的回调函数指针即可。这个方法可以参考学习。

重点难点

本节演示的是按键和外部IO中断事件,虽然看起来没有接外部设备,但解决方案实际上可以扩展到很多应用。

比如多个外部中断,可以对应到实际你所用硬件板上各个外部设备、片内外设的其它中断,如DMA中断、以太网接收中断等等。当你需要用一个任务对多种事件进行监控处理时,就可以采用这种方法。

注意事项

常见问题

这篇文章对您有用吗?

我们要如何帮助您?

发表评论

电子邮件地址不会被公开。 必填项已用*标注