uC/OS-II
文章平均质量分 71
lemon_fantasy
这个作者很懒,什么都没留下…
展开
-
uC/OS-II的任务调度与时钟
uC/OS-II的任务调度机制(在文件OS_CORE.C中) uC/OS-II有两种任务调度器:任务级的调度器和中断级的调度器。任务级的调度器由函数OSSched()来实现;中断级的调度器由函数OSIntExit()来实现。 调度器OSSched()的前半部分叫调度部分,其职责就是寻找优先级别最高的就绪任务作为待运行任务。if ((OSLockNesting | O原创 2008-07-09 10:56:00 · 9425 阅读 · 0 评论 -
uC/OS-II的内存管理
uC/OS-II的内存管理 应用程序在运行中为了某种特殊需要,经常需要获得一些内存空间,因此作为一个完善的操作系统,必须具有动态分配内存的能力。对于实时操作来说,还应保证系统在动态内存分配时,它的执行时间是可确定的。 uC/OS-II对内存进行两级管理:把一片连续的内存空间分成了若干个分区;每个分区又分成了若干个大小相等的内存块。分区是操作系统的管理单位,而内存快时分配原创 2008-07-10 11:36:00 · 3648 阅读 · 1 评论 -
内核,中断,死锁,RAM空间
内核(Kernel) 多任务系统中,内核负责管理各个任务,或者说为各个任务分配CPU时间,并且负责任务之间的通信。内核提供的基本服务是任务切换。之所以使用实时内核可以大大简化应用系统的设计,是因为实时内核允许将应用分成若干个任务,有实时内核来管理他们。内核本身也增加了应用程序的额外负荷,代码空间增加了ROM的用量,内核本身的数据结构增加了RAM的用量。但更主要的是,每个任务要有自己的转载 2008-07-12 10:47:00 · 2201 阅读 · 0 评论 -
uC/OS-II的任务同步与通信
在多任务合作过程中的,操作系统应解决两个问题:一是各任务之间应具有一种互斥关系,即对于某个共享资源的共享,如果一个任务正在使用,则其他任务只能等待,等到该任务释放该资源以后,等待的任务之一才能使用它;二是相关的任务在执行上要有先后次序,一个任务要等其伙伴发来通知或建立了某个条件后才能继续执行,否则只能等待。 任务之间的这种制约性的合作运行机制叫做任务间的同步。 事件原创 2008-07-09 15:51:00 · 6478 阅读 · 1 评论 -
uC/OS-II的任务优先级的反转现象
uC/OS-II的任务优先级的反转现象 一个优先级别较低的任务在获得了信号量使用共享资源期间被具有较高优先级别的任务所打断而不能释放信号量,从而使正在等待这个信号量的更高级别的任务因得不到信号量而被迫处于等待状态,在这个等待期间,就让优先级别低于它而高于占据信号量的任务的任务先运行了。出现了优先级反转的现象。显然如果这种优先级别介于使用信号量的两个任务优先级别中间的中等优先级别的任务原创 2008-07-09 18:36:00 · 1650 阅读 · 0 评论 -
嵌入式实时操作系统uC/OS-II概述
嵌入式实时操作系统uC/OS-II概述一、 uC/OS-II是一种小型的嵌入式操作系统,它只提供了任务管理,任务通信同步和简单的存储管理三项基本功能。二、 uC/OS-II作为一个微内核,它只对计算机的处理器和硬件时钟进行了抽象和封装,而没有提供其他的硬件抽象层(HAL)。在移植uC/OS-II时,其主要工作就是根据具体硬件换一个或添加一个原创 2008-07-05 09:34:00 · 2722 阅读 · 1 评论 -
uC/OS-II就绪任务的管理
uC/OS-II就绪任务的管理 uC/OS-II总是在已就绪的任务中选择一个任务来运行。为了了解系统中的任务哪些是就绪任务,uC/OS-II在系统初始化时间里了一个供就绪任务登记的表,整个表就叫做就绪任务表。 uC/OS-II的就绪任务表实质上是一个类型为INT8U的数组OSRdyTbl[ ]。其中的每一位对应一个任务。OSRdyTbl[]数组的一个元素就可以表示原创 2008-07-08 10:39:00 · 2269 阅读 · 1 评论 -
uC/OS-II的任务管理(在文件OS_task.C中)
uC/OS-II的任务管理(在文件OS_task.C中) uC/OS-II的任务的创建 uC/OS-II是通过任务控制块来管理任务的,因此创建任务的工作实质上是给任务的代码分配一个任务控制块,并通过任务控制块把任务代码和任务堆栈关联起来形成一个完整的任务。当然还要使刚创建的任务进入就绪状态,并接着引发一次任务调度。 uC/OS-II有两个用来创建任务的函数:OS原创 2008-07-08 11:34:00 · 3227 阅读 · 0 评论 -
uC/OS-II的任务
uC/OS-II的任务 在小型应用中,通常一个嵌入式系统中的所有程序模块同属于一个统一的任务——对宿主对象进行控制。因此,通常认为在嵌入式系统中只有一个进程,而把这个进程进行分解之后的那些小程序模块,由于他们没有自己的内存空间,所以他们实质上就是所谓的线程。在uC/OS-II中,习惯把这样的线程叫做任务,或者叫做实时任务。 实时系统中的任务的执行大多数都是由外部事件触发原创 2008-07-07 13:50:00 · 1151 阅读 · 0 评论