μC/OS II 的那些事
fanwenjieok
这个作者很懒,什么都没留下…
展开
-
μC/OS II 任务调度详解(一)
UC/OS II 是一个多任务操作系统,从宏观角度来看,当前系统中可以有多个任务同时运行;但从微观角度来看,某一个时刻只能有一个任务处于运行状态(单CPU情况,事实上在单核时是不存在多任务的),所有其它任务都处于其他状态,这些任务在什么时候,哪种情况下进行状态切换,是由该任伤自身的属性和操作系统调度算法来决定的。 当一个正在执行的任务因某个事件发生需要转入其他状态时,需要停止该任务的运行,转而执行其它的任务(或中断),此时就需要操作系统执行调度功能。因此,调度是指操作系统在管理多任务时选原创 2010-11-07 09:51:00 · 1783 阅读 · 1 评论 -
μC/OS II 任务调度详解(二)——任务就绪表
<br /> 为了标识当前系统中哪些任务(该任务由优先级标识)处于就绪状态,以便于系统在调度时可以快速地访问到处于就绪状态的最高优先级的任务,操作系统定义了以下两个全局变量以构成任务就绪表,用以标识所有处于就绪状态的任务。<br /> #if OS_LOWEST_PRIO <= 63 //如果优先级范围在0-63之间<br /> OS_EXT INT8U OSRdyGrp; //标识某范围内有任务处于就绪状态<br />原创 2010-11-08 19:39:00 · 1451 阅读 · 0 评论 -
uc/os ii阶段学习小结
<br />uC/OS看到现在,让我感叹这个系统真的是用空间换取时间的典范,把所有的东西都先建立好,通过查表或者是保存一大堆变量,目的就是要用的时候就能随手拿到,不用再进行计算了,感叹一下。<br />先列一下比较重要的几个量(MAX_TASKS表示最大任务个数,LOWEST_PRIO指最低优先级数):<br />OSRunning:用于标识多任务环境是否已经开启运行,在OSStart()函数里启动任务后就置为True。<br />OSIntNesting:用于标识中断嵌套层数。产生一次中断可以调用OSIn原创 2010-11-24 17:58:00 · 703 阅读 · 0 评论 -
再论UCOS II外部中断问题
再论UCOS II外部中断问题<br /> 如果按前后台系统的方式编写则按下键后,系统进入了一个死循环,出不来,调试时中止发现进入了默认的异常处理程序,为什么呢?<br /> <br /> 我认为是OS在各任务间进行切换时,由任务级任务调度函数完成的,而在切换过程中完成了任务的堆栈保护和恢复,得以系统正常执行。<br /><br /> 然而在中断级任务切换中,如果按普通中断方式编写中断服务函数,则在中断完成后后,系统不会自动恢复被中断的任务堆栈(即CPU状态信息),故不能恢复到原来状原创 2011-04-07 21:00:00 · 2776 阅读 · 0 评论 -
ucos ii下的硬中断服务问题
<br />今天在做实验时,想在ucos ii 系统下触发一下外部中断玩玩,可没想到,按常归的中断要求编写完中断服务例程后,程序竟然跑飞了,触发按键中断后,我调试了一下,程序在一个默认的异常服务死循环里出不来了,我就郁闷了,想了之后,以为当OS 控制系统后在不同优先级任务间切换,不能再响应来自外部事件触发的中断呢,所以程序崩溃了呢,后来才发现,这是一个多么可笑的想法啊,呵呵,现在终于弄明白了,写点心得记录下来,以便完全理解。<br /> 看了ucos ii对中断的要求后才发现错哪了,任务调度之所以分原创 2011-03-30 20:52:00 · 3527 阅读 · 1 评论 -
uC/OS II内存管理 详细分析
uC/OS II内存管理 详细分析原创 2014-07-12 18:58:37 · 2695 阅读 · 0 评论 -
uC/OS-III的任务调度算法研究
uC/OS-III的任务调度算法研究 1. 就绪列表 1.1 概述 准备好运行的任务被放到就绪列表中,如图1.1。就绪列表是一个数组(OSRdyList[]),它一共有OS_CFG_PRIO_MAX条记录,记录的数据类型为OS_RDY_LIST( 见OS.H)。就绪列表中的每条记录都包含了三个变量.Entries、.TailPtr、.HeadPtr。 .Entries中该优先级的就转载 2014-08-21 22:45:42 · 2221 阅读 · 0 评论 -
ucos 就绪表(Ready List)
就绪表(Ready List) 每个任务被赋予不同的优先级等级,从0级到最低优先级OS_LOWEST_PR1O,包括0和OS_LOWEST_PR1O在内(见文件OS_CFG.H)。当uCOS II初始化的时候,最低优先级OS_LOWEST_PR1O总是被赋给空闲任务idle task。注意,最多任务数目OS_MAX_TASKS和最低优先级数是没有关系的。用户应用程序可以只有10个任务,而转载 2014-10-09 09:19:35 · 740 阅读 · 0 评论