微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 盘点uC/OS和uClinux操作系统的对比

盘点uC/OS和uClinux操作系统的对比

时间:06-10 来源:互联网 点击:

引 言

嵌入式系统的应用与开发是当今计算机行业发展的一个热点。现今嵌入式软件的应用与开发的领域主要有:国防、通信、电子、办公自动化、机/车顶盒、掌上电脑(或PDA)、手机软件、工业控制、信息家电等领域。

随着嵌入式技术的发展,由于嵌入式应用不断增长、嵌入式系统复杂性不断提高,导致嵌入式软件的规模和复杂性也在相应的不断提高。目前嵌入式软件、硬件的应用与开发体现如下趋势:随着计算技术、通信技术的飞速发展,计算机、通信、消费电子的一体化趋势日益明显,嵌入式技术已成为一个研究热点;特别是互联网的迅速普及,使得网络化、微型化和专业化成为嵌入式发展的新趋势;嵌入式产品的开发和应用成为信息产业的主流之一,中间件技术开始和嵌入式软件的应用与开发相结合起来。

嵌入式应用是继 PC 后的重要应用,具有广阔的发展应用前景,涉及嵌入式软件应用的领域也日见增加,应用所产生的市场经济价值也越来越大。同时,随着电子信息技术的发展,嵌入式应用产品将和人民的日常生活联系变得更加紧密。从技术应用的层面来看,嵌入式技术的应用发展空间巨大,在工业控制、汽车电子、数字电视技术等领域中将会得到大量的应用。

uC/OS和uClinux操作系统是两种性能优良、源码公开且被广泛应用的免费嵌入式操作系统,可以作为研究实时操作系统和非实时操作系统的典范。本文通过对uC/OS和uClinux的对比,分析和总结嵌入式操作系统应用中的若干重要问题,归纳嵌入式系统开发中操作系统的选型依据。

两种嵌入式操作系统主要性能比较:

嵌入式操作系统是嵌入式系统软硬件资源的控制中心,它以尽量合理的有效方法组织多个用户共享嵌入式系统的各种资源。其中用户指的是系统程序之上的所有软件。所谓合理有效的方法,指的就是操作系统如何协调并充分利用硬件资源来实现多任务。复杂的操作系统都支持文件系统,方便组织文件并易于对其规范化操作。

嵌入式操作系统还有一个特点是,针对不同的平台,系统不是直接可用的,一般需要经过针对专门平台的移植操作系统才能正常工作。

1.系统结构

μC/OS-II的组成部分:

μC/OS-II可以大致分成核心、任务处理、时间处理、任务同步与通信,CPU的移植等5个部分。

1) 核心部分(OSCore.c)

是操作系统的处理核心,包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分。能够维持系统基本工作的部分都在这里。

2) 任务处理部分(OSTask.c)

任务处理部分中的内容都是与任务的操作密切相关的。包括任务的建立、删除、挂起、恢复等等。因为μC/OS-II是以任务为基本单位调度的,所以这部分内容也相当重要。

3) 时钟部分(OSTime.c)

μC/OS-II中的最小时钟单位是timetick(时钟节拍)。任务延时等操作是在这里完成的。

4) 任务同步和通信部分

为事件处理部分,包括信号量、邮箱、邮箱队列、事件标志等部分;主要用于任务间的互相联系和对临界资源的访问。

5) 与CPU的接口部分

是指μC/OS-II针对所使用的CPU的移植部分。由于μC/OS-II是一个通用性的操作系统,所以对于关键问题上的实现,还是需要根据具体CPU的具体内容和要求作相应的移植。这部分内容由于牵涉到SP等系统指针,所以通常用汇编语言编写。主要包括中断级任务切换的底层实现、任务级任务切换的底层实现、时钟节拍的产生和处理、中断的相关处理部分等内容。

uClinux内核结构如图1所示:

图1

图1代表了内核的功能结构,与Linux基本相同,不同的只是对内存管理和进程管理进行改写,以满足无MMU处理器的要求。uClinux是Linux 操作系统的一种,是由Linux2.0内核发展来的,是专为没有MMU的微处理器(如ARM7TDMI、Coldfire 等)设计的嵌入式Linux操作系统。另外,由于大多数内核源代码都被重写,uClinux的内核要比原Linux 2.0内核小的多, 但保留了Linux 操作系统的主要优点:稳定性,优异的网络能力以及优秀的文件系统支持

2.任务调度

1.uC/OS-II 采用的是可剥夺型实时多任务内核。可剥夺型的实时内核在任何时候都运行就绪了的最高优先级的任务。

uC/os-II的任务调度是完全基于任务优先级的抢占式调度,也就是最高优先级的任务一旦处于就绪状态,则立即抢占正在运行的低优先级任务的处理器资源。为了简化系统设计,uC/OS-II规定所有任务的优先级不同,因为任务的优先级也同时唯一标志了该任务本身。

任务调度将在以下情况下发生:

1) 高优先级的任务因为需要某种临界资源,主动请求挂起,让出处理器,此时将调度就绪状态的低优先级任务获得执行,这种调度也称为任务级的上下文切换。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top