| 网站首页 | 新闻 | SOPC | FPGA | DSP | ARM | 嵌入式操作系统 | 下载 | 所有产品 | 留言 | 论坛 | 购买指南 | 网络协议 | 驱动设计 | 
您现在的位置: 21嵌入式控制研究室 >> 嵌入式操作系统 >> ucOSII >> 文章正文 用户登录 新用户注册
uC/OS-II与RTLinux           ★★★ 【字体:
uC/OS-II与RTLinux
作者:佚名    文章来源:本站原创    点击数:    更新时间:2005-11-30
uC/OS-II与RTLinux
1、基本特征
RTLinux是由美国新墨西哥州大学V5ctor Yodaiken等人开发,现在由FSMIabs公司进行维护。RTLinux的设计思想是在标准Linux基础上实现抢占式的硬实时内核,并将Linux作为一个优先级最低的任务来运行。用户可以编写自己的实时进程,和标准Linux共同运行。所有的实时任务的优先级都要高于Linux本身以及Linux下的一般任务。也就是说RTLinux将Linux内核作为简单实时操作系统(RTOS)或者子内核里优先权最低的线程来运行,从而避开了Linux内核性能的问题。RTLinux仿真了Linux内核所看到的中断控制器,这样关键的实时中断就能够保持激活,即使在被CPU中断的核心Linux内核请求被取消了的情况下。研究报告显示:这种方法在高速的处理器上能够获得低于10毫秒的中断反应时间。这种方式的优势在于:实时和非实时的线程被分离的,而关键的实时函数会在固定的RTOS环境下运行,从而不受普通Linux内核的时间影响。拥有两个内核就意味着有两组单独的API:一个用于Linux环境,另一个用于实时环境。
u/COSII是一个完整的,可移植,固化,裁减的占先式实施多任务内核。
2、体系结构
RT-Linux实现了一个小的实时核心,仅支持底层任务创建、中断服务例程的装入、底层任务通信队列、中断服务例程(ISR)和Linux进程。原来的非实时Linux核心作为一个可抢先的任务运行于这个小核心之上,所有的任务都在核心地址空间运行。它不同于微内核和大型内核,属于实时EXE(realtime executive)体系结构。其可靠性和可维护性对电信服务系统来说都不够理想。在操作系统之下实现了一个简单的实时核心,Linux本身作为一个可抢占的任务在核内运行,优先级最低,随时会被高优先级任务抢占。
uC/OS-II不支持时间片轮转法,它是一个基于优先级的实时操作系统,每个任务的优先级必须不同,分析它的源码会发现,uC/OS-II把任务的优先级当做任务的标识来使用,如果优先级相同,任务将无法区分。进入就绪态的优先级最高的任务首先得到CPU的使用权,只有等它交出CPU的使用权后,其他任务才可以被执行。所以它只能说是多任务,不能说是多进程。显而易见,如果只考虑实时性,它当然比分时系统好,它可以保证重要任务总是优先占有CPU。
3、系统启动
RTlinux启动时一般使用一个基本的引导/装入程序(如Blod)。一旦内核开始运行(初始化),引导装载程序就从闪存芯片将操作系统内核的映像装入RAM,并转到其入口,完成操作系统的引导。。
uC/OS-II在单片机系统中的启动过程比较简单,不像有些操作系统那样,需要把内核编译成一个映像文件写入ROM中,上电复位后,再从ROM中把文件加载到RAM中去,然后再运行应用程序。uC/OS-II的内核是和应用程序放在一起编译成一个文件的,使用者只需要把这个文件转换成HEX格式,写入ROM中就可以了,上电后,会像普通的单片机程序一样运行。
4、移植性
Linux是个与生俱来的网络操作系统,成熟而且稳定。Linux是源代码开放软件,不存在黑箱技术,任何人都可以修改它,或者用它开发自己的产品。Linux系统是可以定制的,系统内核目前已经可以做得很小。一个带有中文系统及图形化界面的核心程序也可以做到不足1MB,而且同样稳定。Linux作为一种可裁减的软件平台系统,是发展未来嵌入设备产品的绝佳资源,遍布全球的众多Linux爱好者又能给予Linux开发者强大的技术支持。因此,Linux作为嵌入式系统新的选择,是非常有发展前途的。
绝大部分μC/OS-Ⅱ的源码是用移植性很强的ANSI C写的。和微处理器硬件相关的那部分是用汇编语言写的。汇编语言写的部分已经压到最低限度,使得μ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-Ⅱ几乎不需要改动或根本不需要改动。
5、时钟
普通Linux系统中的最小定时精度由系统中的实时时钟的频率决定,一般Linux系统将该时钟设置为每秒来100个时钟中断,所以Linux系统中一般的定时精度为 10毫秒,即时钟周期是10毫秒,普通的Linux一般是在600微秒内开始一个中断服务程序,对周期性的任务很可能会超过20毫秒(20,000微秒)。
而RT-Linux通过将系统的实时时钟设置为单次触发状态,可以提供十几个微秒级的调度粒度。在一台386机器上,RT Linux从处理器检测到中断到中断处理程序开始工作不会超过15微秒;对一个周期性的任务,在35微秒内一定会执行。

   uC/OS-II需要提供周期性信号源,用于实现时间延时和确认超时。节拍率为10-100次/秒,也就是10-100Hz。时钟节拍率越高,系统的额外负载就越重。时钟节拍的实际频率取决于应用程序的精读。时钟节拍源可以是专门的硬件实时器,也可以是来自50/60Hz交流电源的信号。
6、调度策略分析
在操作系统之下实现了一个简单的实时核心,Linux本身作为一个可抢占的任务在核内运行,优先级最低,随时会被高优先级任务抢占。用户可自行编写调度程序,它们可实现为可加载的核心模块;已实现的调度程序有:基于优先级的抢占式调度和EDF调度;基于优先级的调度使用“单调率算法”,它直接支持周期任务。
    uC/OS-Ⅱ是占先式(Preemptive)多任务实时内核,是基于优先级的,即总是让进入就绪态的诸任务中优先级最高的那个任务先运行。每个任务都有互不相同的优先级,最多支持64个任务。
    
7、操作系统服务比较
RTLinux具有成熟和丰富的资源:
  * UNIX用户的开发工具和应用软件都被移植到Linux上。
   * TCP/IP网络协议。
   * 各种Internet客户/服务端软件。
   * X Window。
   * C/C++、Java等语言编译器。
RTLinux的开发人员拥有底层虚拟化技术的美国专利(U.S. Patent 5,995,745),所以如果想在非GPL的条款下使用RTLinux就必须支付专利使用费。

Micrium 公司为uC/OS-II提供嵌入式系统应用方面的产品并对以下软件拥有知识产权:
*μC/GUI 嵌入式图形用户界面
*μC/FS 嵌入式文件系统
*TCP/IP协议模块
如果要使用的话需要购买这部分代码使用权。
文章录入:fengfeiyi    责任编辑:fengfeiyi 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
  • 将OS/2应用程序移植到Linux(…

  • 实时操作系统uC0SII下TCPIP协…

  • 实时操作系统uC0SII下TCPIP协…

  • WindRiver的编码习惯

  • uC/OS-II的特点

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)