ucos-iii学习之中断管理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34401994/article/details/78089559

1.关于中断管理
中断响应时间定义为:接收到中断到开始处理 ISR 中代码的这段时间。通常,中断时用户代码的上文(CPU 寄存器)会被放入堆栈。
中断恢复时间定义为:执行完 ISR 中最后一句代码后到恢复到任务级代码的这段时间。
任务延迟时间定义为:中断发生到恢复到任务级代码的这段时间。
2.CPU的中断处理
在大多数情况下,中断控制器捕捉所有中断提交给处理器。
CPU处理中断有两种模式:
(1)所有的中断指向同一个ISR
(2)每个中断指向各自的ISR
3.短中断服务程序(ISR)
这里写图片描述
4.每个中断向量指向不同的地址
中断向量控制器中的中断向量都只想对应的ISR地址。
5.直接提交和延迟提交
uC/OS-III 有两种方法处理来自于中断的时间;直接提交和延迟提交。通过 OS_CFH.H 中的 OS_CFG_ISR_POST_DEFERRED_EN 来选择。当设置为 0 时,uC/OS-III 使用直接提交方法。 当设置为 1 时,使用推迟提交方法。
(1)直接提交
uC/OS-III访问临界段时关中断。
(2)延迟提交
uC/OS-III访问临界段时锁调度器。
6.系统时基
uC/OS-III需要一个能提供周期性时间的时基源,叫做系统时基。
时基可以看做系统的心跳。
时基中断程序必须调用OSTimeTick()。
uC/OS-III必须有系统时基是普遍的误解。事实上,很多低功耗应用中没有系统时基。
7.总结
uC/OS-III 提供管理中断的服务。ISR 应该越短越好,发送信号量或消息给任务,让该任务实现该中断所需的大部分操作。即尽量让操作在任务级完成。
ISR 也可以不发送信号量或消息给任务。ISR 自己处理响应操作。但 ISR 越短越好。
uC/OS-III 允许处理器中断时指向同一个 ISR,或是指向各自的ISR。
uC/OS-III 支持两种方式:直接提交方式和延迟提交方式。直接提交方式需要关中断保护临界段。延迟提交方式需要关调度器保护临界段。
uC/OS-III 需要时基源,用于任务的延时和超时功能。

猜你喜欢

转载自blog.csdn.net/qq_34401994/article/details/78089559