uC/OS 的中断——uC/OS学习笔记(三)
来源:互联网 发布:最美古诗词 知乎 编辑:程序博客网 时间:2024/04/30 13:18
1. 常见名词
a) 中断服务子程序:应中断请求而运行的程序
b) 中断向量:中断服务子程序的入口地址
2. uC/OS的中断过程
系统接收到中断请求后,如果这时CPU处于中断允许状态,系统就会立刻终止正在运行的任务,而按照中断向量的指向运行中断服务子程序。
对于可剥夺型内核uC/OS而言,中断服务子程序运行结束之后,系统将会根据情况进行一次任务调度去运行优先级最高的就绪任务,而不一定接着运行被中断的任务。
3. 中断嵌套
uC/OS 2 系统允许中断嵌套,即高优先级别的中断源的中断请求可以中断低优先级别的中断服务程序运行。
为了记录中断嵌套的层数,uC/OS 2系统定义了一个全局变量OSIntNesting。通过调用函数OSIntEnter()来将这个全局变量加1,从而用它来记录中断嵌套的层数。当中断 服务程序完成后,调用OSIntExit()函数,来让OSIntNesting置0。
4. 应用程序的临界段(重要)
a)实际上对于应用程序来说,比较重要的概念就是临界段,中断在uC/OS中到底如何运作只用看一下即可。
在uC/OS中,用OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()这两个宏来封装与系统硬件相关的关中断和开中断指令 。这两个宏需要在系统移植的时候自己实现
在STC 51单片机上的实现代码:
#define OS_ENTER_CRITICAL() EA=0 //关中断
#define OS_EXIT_CRITICAL() EA=1 //开中断
b)不要在临界段中调用uC/OS提供的功能函数。
5. 主要参考书籍
a) 《嵌入式实时操作系统 uC/OS 2》
b) 《嵌入式实时操作系统 uC/OS 2 原理及应用》
- uC/OS 的中断 —— uC/OS学习笔记(三)
- uC/OS 的中断——uC/OS学习笔记(三)
- uC/OS 的时钟和时间——uC/OS学习笔记(四)
- uC/OS 的任务——uC/OS学习笔记(二)
- uC/OS 的消息邮箱——uC/OS学习笔记(五)
- uC/OS 系统的裁剪——uC/OS学习笔记(六)
- uC/OS 的操作错误总结——uC/OS学习笔记(零)
- uC/OS 的消息队列——uC/OS学习笔记(七)
- uc/os的中断
- uc/os-iii学习笔记-中断管理
- uC/OS-III 学习笔记(一)——uC/OS-III移植
- uC/OS-II系统学习笔记(4)—— uC/OS-II概述上篇
- uC/OS-II系统学习笔记(5)—— uC/OS-II概述下篇
- uc/os学习笔记1【uc/os的任务管理】
- UC/OS-II 的中断
- uC/OS-II学习笔记(1)
- uC/OS-II学习笔记(2)
- uC/OS-II学习笔记(3)
- 大学英语六级听力--002(Dreams)
- Oracle 中与时间有关的计算
- 用程序控制后台JOB的运行
- 小知识点x=x++%2
- vc2010编译live555——20131018
- uC/OS 的中断——uC/OS学习笔记(三)
- fopen的用法
- 仿函数
- HG30-3B型多功能校准仪
- 【cocos2d-x从c++到js】01:迎接脚本时代的到来
- threadlocal
- NM3000多用表校验仪
- NoSQL数据库笔谈
- NM5200多功能标准源