《基于嵌入式实时操作系统的编程技术》笔记清单:第五章中断服务程序设计

《基于嵌入式实时操作系统的编程技术》笔记清单:第三章任务划分.
《基于嵌入式实时操作系统的编程技术》笔记清单:第四章任务设计.
《基于嵌入式实时操作系统的编程技术》笔记清单:第五章中断服务程序设计.
《基于嵌入式实时操作系统的编程技术》笔记清单:第六章行为同步.
《基于嵌入式实时操作系统的编程技术》笔记清单:第七章资源同步.
《基于嵌入式实时操作系统的编程技术》笔记清单:第八章数据通信.
《基于嵌入式实时操作系统的编程技术》笔记清单:第九章时间管理.
《基于嵌入式实时操作系统的编程技术》笔记清单:第十章采集任务设计.

前言

中断服务程序(ISR)是嵌入式应用系统获取各种事件的基本手段,而“事件”是实时性问题讨论基础和时间计算的起点。ISR的设计质量直接影响到系统的实时性指标和操作系统的工作效率。

本章笔记清单

1. 中断优先级安排原则

1)紧迫性:触发中断事件允许耽误时间越短,设置中断优先级越高。如:脉冲采集。
2)关键性:越关键,中断优先级越高。
3)频繁性:频繁时间的间隔时间比较短,不及时处理,有可能遗漏,故设高优先级。
4)快捷性:与前三项相近,ISR处理越快捷(耗时越短),设定优先级越高。

3. 中断服务程序尽可能简单

1)只要将获得的异步事件通信给关联任务即可,后续处理交由关联任务。

5. 中断服务函数结构:

1)进入中断;
2)运行功能代码:不能含延时函数,如OSTimeDly(),可包含了通信函数,如OSMboxPost;
3)退出中断:a.如果是嵌套中断,则返回上一级中断;b.没有嵌套,则返回被中断的任务。

6. 设计与关联任务的通信手段

1)第一种:触发ISR的事件不包含数据。ISR使用信号量与关联任务进行通信。如:一个报警信号触发外部中断,只通过信号量启动关联的任务。
2)第二种:触发ISR的事件是包含数据的低频事件,触发ISR的频率不高。我们可以使用消息邮箱、消息队列等,将数据采集的工作放在关联任务完成。
3)第三种:触发ISR的事件包含数据的高频事件。数据采集工作放在ISR中完成,由ISR使用消息邮箱与关联任务通信。
4)第四种:触发ISR的事件是包含数据的非周期高频事件,即在某一段时间,可能出现高频率的采集。处理的方式和第三种一样。



7.题外话

人一生有三次成长:
第一次是发现自己不是世界中心。
想想我们刚懂事的时候,是不是这样的心态,总会把自己想象成世界的中心,自以为担负着重大使命,别人都是围绕我们转的。
第二次是发现自己不能改变世界;
当我们到了一定年龄,就发现自己不仅不是世界的中心,而且自己根本没办法改变世界,于是我们开始向世俗妥协,甚至认为世道不公。
第三次是认清现实后依然热爱世界;
当我们彻底成熟以后,不仅不会再埋怨,反而开始接纳世界,发现这个世界的可爱之处,于是我们开始快乐的生活,人生最难实现的就是这个心境!
——转自水木然学社公众号文章《才华是一种病,害惨了很多人!》

猜你喜欢

转载自blog.csdn.net/weixin_38956024/article/details/107203686