这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » [转帖]uC/OS-II的特点

共1条 1/1 1 跳转至

[转帖]uC/OS-II的特点

菜鸟
2007-03-29 17:07:37     打赏
公开源代码

前面已经提到,本书包含μC/OS-Ⅱ的全部源代码。我尽了极大努力以提供给读者高质量的软件。读者可能不喜欢我在源程序中使用的某些格式,但你得承认,这份源码清晰易读且结构协调。许多商业实时内核的软件是以源代码形式提供的。读者可以找一个来比比看。看他有没有像μC/OS-Ⅱ那样干净漂亮和谐一致,有没有注解的那么详尽,组织得那么有序。我认为仅仅给出一个源码是远远不够的,读者还想知道这些代码的工作原理是什么以及这一段一段的代码是怎么拼到一起的。这些信息都在这本书里。有那么多文件,好几千行的程序,如果单从读源码入手,实时内核的整体架构并不是那么容易弄清楚。


可移植性(Portable)

绝大部分μC/OS-Ⅱ的源码是用移植性很强的ANSI C写的。和微处理器硬件相关的那部分是用汇编语言写的。汇编语言写的部分已经压到最低限度,使得μC/OS-Ⅱ便于移植到其他微处理器上。如同μC/OS一样,μC/OS-Ⅱ可以移植到许许多多微处理器上。条件是,只要该微处理器有堆栈指针,由CPU内部寄存器入栈、出栈指令。另外,使用的C编译器必须支持内嵌汇编(inline assembly)或者该C语言可扩展、可连接汇编模块,使得关中断、开中断能在C语言程序中实现。μC/OS-Ⅱ可以在绝大多数8位、16位、32位以至64位微处理器、微控制器、数字信号处理器(DSP)上运行。 从移植了的μC/OS升级到μC/OS-Ⅱ,全部工作一个小时左右就可完成。因为μC/OS-Ⅱ和μC/OS是向下兼容的,应用程序从μC/OS升级到μC/OS-Ⅱ几乎不需要改动或根本不需要改动。移植的范例可以从互联网上找到,网址是http://www.ucos-Ⅱ.com/。


可固化(ROMable)

μC/OS-Ⅱ是为嵌入式应用而设计的,这就意味着,只要读者有固化手段(C编译、连接、下载和固化),μC/OS-Ⅱ可以嵌入到读者的产品中成为产品的一部分。


可裁剪(Scalable)

可以只使用μC/OS-Ⅱ中应用程序需要的那些]系统服务。也就是说某产品可以只使用很少几个μC/OS-Ⅱ调用,而另一个产品则使用了几乎所有μC/OS-Ⅱ的功能。这样可以减少产品中的] μC/OS-Ⅱ所需的存储空间(RAM和ROM),这种可裁剪性是靠条件编译实现的。只要在用户的应用程序中(用#define constants 语句)定义哪些μC/OS-Ⅱ中的功能是应用程序需要的就可以了。程序和数据两部分的存储用量已被最大努力的压低了。


占先式(Preemptive)

μC/OS-Ⅱ完全是占先式的实时内核。这意味着μC/OS-Ⅱ总是运行就绪条件下优先级最高的任务。大多数商业内核也是占先式的,μC/OS-Ⅱ在性能上和它们类似。


多任务

μC/OS-Ⅱ可以管理64个任务,然而,目前这一版本保留8个给系统。应用程序最多可以有56个任务。赋予每个任务的优先级必须是不同的,这意味着μC/OS-Ⅱ不支持时间片轮转调度法(Round-robin Scheduling)。该调度法适用于调度优先级平等的任务。


可确定性

全部μC/OS-Ⅱ的函数调用与服务的执行时间具有其可确定性。也就是说,全部μC/OS-Ⅱ的函数调用与服务的执行时间是可知的。进而言之,μC/OS系统服务的执行时间不依赖于应用程序任务的多少。


任务栈

每个任务有自己单独的栈,μC/OS-Ⅱ允许每个任务有不同的栈空间。以便压低应用程序对RAM的需求。使用μC/OS-Ⅱ的栈空间校验函数,可以确定每个任务到底需要多少栈空间。


系统服务

μC/OS-Ⅱ提供很多系统服务,例如邮箱、消息队列、信号量、块大小固定的内存的申请与释放、时间相关函数等。


中断管理

中断克以使正在执行的任务暂时挂起。如果优先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达255层。



关键词: 转帖     OS-II     特点     可以     任务    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]