【μC/OS-III】读书笔记,嵌入式微操作系统 中断管理

μC/OS-III是实时多任务操作系统系统的实时性主要体现在对中断的响应上,要求能够尽可能快地响应中断,进入中断程序处理中断请求。μC/OS-III还要求中断服务程序运行的时间不能过长,长时间的运行中断服务程序会使系统中其他的任务得不到运行,或使系统不能处理新的中断。因此在中断服务程序的设计上,必须做到短小精悍(中断设计原则),而把复杂的处理过程通过消息等机制交给用户任务来做。

 

任务的调度也大多依靠中断。我们知道,如果创建任务或调用 OSTaskDelete函数删除自己,或调用OSTaskSuspend函数阻塞自己,这时候这些函数会执行一次任务切换。但更多的任务切换是时钟中断。时钟中断在每个时钟滴答都发生,该中断服务程序在发现了有更高优先级的就绪任务就会进行任务调度。当操作系统有其他的外中断时,如定时器中断、外中断、串口中断等,只要中断是打开的,而且正在运行的任务并没有关中断,就会响应中断,这时任务就被切换了

如果正在运行的任务没有关闭中断,在中断到来时,操作系统将会响应中断,进入中断服务程序。这时任务的运行环境还没有保存,因此需要将任务的运行环境保存,这时任务由于中断的到来而进入挂起态。

 

【μC/OS-III】读书笔记,嵌入式微操作系统 中断管理_第1张图片

中断执行结束后返回,并非是刚刚挂起的任务需要判断优先级。 与裸机系统不太一样,裸机系统返回刚刚需要执行。

中断应该执行硬件的紧急操作,对于处理数据等操作,可以交给任务来完成。中断服务程序和任务之间可以共享数据结构中断服务程序可以向任务发消息等中断服务程序的运行时间不宜过长。


 

你可能感兴趣的:(微操作系统)