UC/0S2之中断

  中断是计算机系统处理异步事件的重要机制。当异步事件发生时,事件通常是通过硬件向cpu发出中断请求的。在一般情况下,cpu响应这个请求后会立即运行中断服务程序来处理该事件;

为了处理任务延时、任务调度等一些与时间有关的事件,任何一个计算机系统都应该有一个系统时钟。与其他计算机系统一样,UC/OS2的时钟是通过硬件定时器产生定时中断来实现的

  中断服务子程序:Interrupt  Service  Routine =======ISR

    应中断请求而运行的程序;

  中断向量:中断服务子程序的入口地址;

UC/OS2作为一个多任务的os,其关键点在于任务的调度;对应任务的调度是有任务调度器来完成的。在RAM区存放一个任务就绪表,任务的是否就绪的状态存放在该表;

UC/OS2的中断过程:

  系统接收到中断请求后,如果这时CPU处于中断允许状态(即中断是开放的【cpu中的中断寄存器是开允许的】),系统中止正在运行的当前任务,按照中断向量的指向转而去运行中断服务子程序;当中断服务子程序运行结束后,系统将会根据情况返回到被中止的任务继续运行,或者转向运行另一个具有更高优先级别的就绪任务;

  对于可剥夺型的UC/OS2内核来说,中断服务子程序运行结束之后,系统将会根据情况进行一次任务调度去运行优先级别最高的就绪任务,而不一定是接续运行刚被中断的任务;

 UC/OS2允许中断嵌套;

UC/OS2时间管理:

  由于嵌入式系统的任务是一个无限循环,并且UC/OS2还是一个抢占式内核,所以为了使高优先级的任务不至于独占cpu,可以给其他优先级较低的任务获得cpu使用权的机会。

uc/os2规定:除了空闲任务之外的所有任务必须在任务中合适的位置调用系统提供的函数OSTimeDly(),使得当前任务的运行延时(暂停)一段时间并进行一次任务调度,以让出cpu的使用权;在OSTimeDly()函数中引发一次调度函数;

获取和设置系统时间:

  为了方便,系统定义了一个INT32U类型的全局变量OSTime来记录系统发生的时钟节拍数。OSTime在应用程序调用OSStart()时被初始化为0,一行每发生1个时钟节拍,OSTime的值就被加1;

  

 

 

时间: 2024-08-04 00:22:06

UC/0S2之中断的相关文章

UC/0S2之基础总结

堆栈,就是在存储器中按数据"后进先出(LIFO)[类比杯子]"的原则组织的连续存储空间,为了满足任务切换和响应中断保存CPU寄存器中的内容及存储任务私有数据的需要,每个任务都应该配有自己的堆栈, 注意点:堆栈的增长方向是随系统所使用的处理器不同而存在差异,有些处理器要求堆栈的增长方向是向上的,而有些则是要求堆栈的增长方向是向下的: 当cpu启动运行一个任务时,cpu的各寄存器总是需要预置一些初始数据,例如指向任务的指针,程序状态字PSW等: 那么,在系统启动任务时,CPU从何处可以获得

OS_CORE.C

1 /* 2 ************************************************************************************************ 3 * uC/OS-II实时控制内核 4 * 主要的包含文件 5 * 内核管理文件 6 * 7 * 文 件: OS_CORE.C 内核结构管理文件 8 * 作 者: Jean J. Labrosse 9 * 中文注解: 钟常慰 zhongcw @ 126.com 整理: lin-credib

EK-STM32F入门

     VI已告一段落,RM905的问题也解决了,这周开始学习EK-STM32F的开发板,从零开始.以前没玩过这板子,手上除了这块开发板和一张ST官方的光盘外,别无资源,连标配的串口线和USB线都没,真得从零开始!      先熟悉一下开发板的硬件,它的MCU是ST公司的STM32F103VB,核心属于ARM Coretex M3系列,板载了ULINK-II仿真器,外围接口也很丰富,包括两个串口.CAN口.LCD.SD.USB等,板子做得很不错,据说促销时才卖199RMB,相当超值.    

ARM微处理器的uC/OS的移植设计

概述 嵌入式操作系统μC/OS-II是一个公开源代码的占先式多任务的微内核RTOS,其特点可以概括为以下几个方面:公开源代码,代码结构清晰.明了,注释详尽,组织有条理,可移植性好,可裁剪,可固化.内核属于抢占式,最多可以管理60个任务.目前国内对μC/OS-II的研究和应用都很多.只要买一本书就可获得源代码,对学校和教育的使用完全免费,商业应用的费用相对也很低.所以对μC/OS-II实时操作系统的学习研究.开发.应用具有重要意义. 大部分的μC/OS-II代码是使用ANSI C语言书写的,因此μ

UC/OS和uClinux的比较

随着现代计算机技术的飞速发展和互联网技术的广泛应用,从PC时代过渡到了以个人数字助理.手持个人电脑和信息家电为代表的3C(计算机.通信.消费电子)一体的后PC时代.后PC时代里,嵌入式系统扮演了越来越重要的角色,被广泛应用于信息电器.移动设备.网络设备和工控仿真等领域. 嵌入式系统是以嵌入式计算机为核心,面向用户.面向产品.面向应用,软硬件可裁减的,适用于对功能.可靠性.体积.成本.功耗等综合性能有严格要求的计算机系统.随着嵌入式系统的广泛应用,传统的前/后台程序开发机制已经不能满足日益复杂和荷

cortex m3 uc os-cortex m3移植uC/OS后程序运行一段时间停止或者跑飞

问题描述 cortex m3移植uC/OS后程序运行一段时间停止或者跑飞 鄙人最近需要在Atmel sam3x8e开发板上移植uC/OS操作系统,移植成功之后发现系统运行一段时间后总是会跑飞或者停止.经调试发现在pendsv处理任务切换的中断服务函数的BX LR这一条汇编语句之前是好的,但是执行了这个语句之后发现程序停止运行或者不知道跑哪去了.需要注意的是是在系统正常运行一段时间之后才会发生上述情况.由于不能单步调试,所以最后也不知道程序最终bx到哪执行去了,求大神指点,万分感谢!!! 程序代码

海缆中断的痛 网络通信故障该如何解决?

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 由于莫拉克台风引起德尔FNAL/RNAL海缆中断,对中国互联网国际通信造成了一定影响.8月17日,国内大量MSN用户出现登陆故障,部分国外网站随后出现访问速度变慢的状况.海底光缆的中断,使不少公司.用户遭受损失.对海缆中断一事如何做好未雨绸缪的准备,则是企业及国家需面对的难题. 海缆中断,MSN罢工,使得一些用MSN对外沟通的企业或用户蒙受损

win7下载中断故障解决

  用电脑下载程序或者是软件.资料应该是咱们日常生活或者是工作中都经常用到的功能吧?但是大家有没有发现win7系统有这样的一个问题,若是下载的时间需要比较长的话,下载的任务便会出现自动停止或者是中断的情况,可能我们下载了很久之后才发现,任务已经不知道什么时候被中断了,那么这种问题如何解决呢? 其实经过win7之家的测试,发现这个问题原来是因为电源设置问题引起的,既然找到了病因,那么解决的方法也是呼之欲出了! 首先,我们打开win7系统的菜单,进入控制面板中,找到网络和共享中心点击进去. 接下来找

多窗直播 截屏录制——UC问鼎全球首款直播浏览器

如果说时下互联网中有什么项目是最火.最吸金的,那么"直播"绝对是众人心中的不二选择,上到"国民老公"王思聪,下到草根码农,一时间所有人都一头扎进这个火的发烫的新领域,主播及网红成为网络时代中新的代言人.在这样的背景下,浏览器作为用户在PC设备上观看直播的唯一介质,理应为用户打造出更适合直播用户使用的工具级功能. 为了满足用户在观看直播时的"特殊需求",近日UC浏览器对其PC版本浏览器进行了更新,上线了包括小窗口弹出.截屏连拍.gif合成及直播录制