您的位置 首页 汽车

uC/OS和uClinux操作系统的比较

引 言嵌入式系统的应用与开发是当今计算机行业发展的一个热点。现今嵌入式软件的应用与开发的领域主要有:国防、通信、电子、办公自动化、机/车

引 言

嵌入式体系的运用与开发是当今计算机职业开展的一个热门。如今嵌入式软件的运用与开发的范畴首要有:国防、通讯、电子、办公自动化、机/车顶盒、掌上电脑(或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) 高优先级的使命因为需求某种临界资源,自动恳求挂起,让出处理器,此刻将调度安排妥当状况的低优先级使命取得履行,这种调度也称为使命级的上下文切换。

2) 高优先级的使命因为时钟节拍到来,在时钟中止的处理程序中,内核发现高优先级使命取得了履行条件(如休眠的时钟届时),则在中止态直接切换到高优先级使命履行。这种调度也称为中止级的上下文切换。

这两种调度方法在uC/OS-II的履行进程中十分遍及,一般来说前者发生在体系服务中,后者发生在时钟中止的服务程序中。

调度作业的内容能够分为两部分:最高优先级使命的寻觅和使命切换。其最高优先级使命的寻觅是经过树立安排妥当使命表来完结的。u C / O S 中的每一个使命都有独立的仓库空间,并有一个称为使命操控块TCB(Task Control Block)的数据结构,其间第一个成员变量便是保存的使命仓库指针。使命调度模块首先用变量OSTCBHighRdy 记载当时第一流安排妥当使命的TCB 地址,然后调用OS_TASK_SW()函数来进行使命切换。

2.uClinux没有MMU办理存储器,在完结多个进程时(fork调用生成子进程)需求完结数据维护。因为uClinux的多进程办理是经过vfork来完结,因而fork等于vfork。这意味着uClinux体系fork调用完结后,要么子进程代替父进程履行(此刻父进程现已sleep)直到子进程调用exit退出;要么调用exec履行一个新的进程,这个时分将发生可履行文件的加载,即便这个进程仅仅父进程的复制,这个进程也不能防止。当子进程履行exit或exec后,子进程运用wakeup把父进程唤醒,使父进程持续往下履行。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/299550.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部