基于Linux的嵌入式实时操作系统的研究

最新更新时间:2013-05-26来源: 互联网关键字:Linux  嵌入式  实时操作 手机看文章 扫描二维码
随时随地手机看文章
1.引言

  从上世纪八十年代开始,开始出现各种各样的商用嵌入式操作系统,这些操作系统大部分都是为专用或通用系统而开发,如VxWorks、Windows CE、pSOS、Palm OS、OS-9、LynxOS、QNX、LYNX 等,它们的优点是为用户提供良好的开发环境,提高了应用系统的开发效率,运行效率高、实时性好,缺点是价格昂贵且源代码封闭。这就不仅影响了开发者的积极性,而且使得整个产品的成本急剧上升。[1]

  结合国内实情,嵌入式系统需要的是一套高度简练、界面友好、质量可靠、应用广泛、易开发、多任务、价格低廉的实时操作系统。

  在嵌入式产品的开发中,有必要寻找一种廉价的嵌入式实时操作系统,以降低产品的开发成本和系统复杂度。由于Linux的具备的诸多优点,对Linux进行适当的改造后作为廉价的嵌入式实时操作系统是一个值得探讨的、具有实际意义的问题。

  2.Linux的特点

  Linux是个与生俱来的网络操作系统,成熟而且稳定。Linux是源代码开放软件,不存在黑箱技术,任何人都可以修改它,或者用它开发自己的产品。Linux系统是可以定制的,系统内核目前已经可以做得很小。一个带有中文系统及图形化界面的核心程序也可以做到不足1MB,而且同样稳定。Linux作为一种可裁减的软件平台系统,是发展嵌入式产品的绝佳资源,遍布全球的众多Linux爱好者又能给予Linux开发者强大的技术支持。因此,Linux作为廉价的嵌入式实时操作系统的选择,是非常有发展前途的。[2][3]

  (1)与硬件芯片的紧密结合

  嵌入式Linux的一大特点是:与硬件芯片(如SOC等)的紧密结合。它不是一个纯软件的Linux系统,而比一般操作系统更加接近于硬件。嵌入式Linux的进一步发展,逐步地具备了嵌入式RTOS的一切特征:实时性及与嵌入式处理器的紧密结合。

  (2)开放的源代码

  嵌入式Linux的另一大特点是:代码的开放性。代码的开放性是与后PC时代的智能设备的多样性相适应的。代码的开放性主要体现在源代码可获得上,Linux代码开发就像是“集市式”开发,任意选择并按自己的意愿整合出新的产品。

  对于嵌入式Linux,事实上是把BIOS层的功能实现在Linux的driver层。目前,在Linux领域,已经出现了专门为Linux操作系统定制的自由软件的BIOS代码,并在多款主板上实现此类的BIOS层功能。

  3.RT-Linux的实现机理

  RT-Linux对Linux内核进行改造,将Linux内核工作环境做了一些变化,如图1所示:

  

  从上图可以看出,在Linux内核和硬件中断的地方,加上了一个RT-Linux内核的控制。Linux的控制信号都要先交给RT-Linux内核先进行处理。在RT-Linux内核中实现了一个虚拟中断机制,Linux本身永远不能屏蔽中断,它发出的中断屏蔽信号和打开中断信号都修改成向RT-Linux发送一个信号。如在Linux里面使用“sti”和“cli”宏指令来屏蔽和使能中断,是通过向x86处理器发送一个指令,而RT-Linux修改了这些宏指令,使得只是让RT-Linux里面的某些标记做了修改而已。对所有的中断,分成Linux中断和实时中断两类,如果RT-Linux内核收到的中断信号是普通Linux中断,那就设置一个标志位;如果是实时中断,就继续向硬件发出中断。在RT Linux中执行sti将中断打开之后,那些设置了标志位表示的Linux中断就继续执行。因此,cli并不能禁止RT Linux内核的运行,却可以用来中断Linux。Linux不能中断自己,而RT-Linux可以。

  RT-Linux的设计原则:在实时内核模块中的工作尽量少,如果能在Linux中完成而不影响实时性能的话,就尽量在Linux中完成。因此,RTLinux内核尽量做的简单,在RT-Linux内核中,不应该等待资源,也不需要使用共享旋转锁(SpinLock),实时任务和Linux进程间的通信也是非阻塞的,从来不用等待进队列和出队列的数据。

  RT-Linux将系统和设备的初始化交给了Linux完成,对动态资源的申请和分配也交给了Linux。RT-Linux使用静态分配的内存来完成硬实时任务,因为在没有内存资源的时候,被阻塞的线程不可能具有硬实时能力。

  4.改变Linux内核的体系结构

  Linux的内核体系采用的是Monolithic,在这种体系结构中,内核的所有部分都集中在一起,而且所有的部件在一起编译连接。这样虽然能使系统的各部分直接沟通,有效地缩短任务之间的切换时间,提高了系统的响应速度,实时性好并提高了CPU的利用率,但在系统比较大的时候体积也比较大,与嵌入式系统容量小、资源有限的特点不符合。而另外一种内核体系结构MicroKernel, 在内核中只包括了一些基本的内核功能如创建和删除任务、任务调度、内存管理和中断处理等部分,而文件系统、网络协议栈等部分都是在用户内存空间运行。这种结构虽然执行效率不如Monolithic内核,但大大减小了内核的体积,同时也极大地方便了整个系统的升级、维护和移植,因此更能满足嵌入式系统的特点需要。为此,为使嵌入式Linux的应用更加广泛,可以考虑将Linux目前的Monolithic内核结构中的部分结构改造成MicroKernel体系结构。通过这种折中办法,可以使得到的Linux既具有很好的实时性,又能满足嵌入式系统体积小的要求。
5.RT-Linux的编程接口(API)及编程方法示例

  (1)RTLinux的编程和控制接口(API)。

  通过使用RTLinux的编程和控制接口(API),可以提供对实时任务的创建和删除、任务的调度和控制等功能。API函数主要有如下几类:

  1)中断控制API函数;2)时钟控制和获取;3)线程的创建和删除;4)POSIX方式的驱动接口;5)FIFO设备驱动程序;6)串口驱动程序的API函数;7)mbuff驱动API函数;8)浮点运算API函数。

  (2) RTLinux的编程方法示例

  该程序的原理是测出在RT-Linux中进行实时任务调度过程中调度需要花费时间的多少。算法如下:

  /*实时任务端*/

  对于每500个周期

  等待上一个周期的任务完成

  获得当前时间和上次周期任务完成时间的差,就是调度的时间

  循环

  向FIFO输出500个周期中完成的最大值和最小值。

  /*应用程序端*/

  读取FIFO设备,获取最大值和最小值

  在屏幕上打印出来

  这种编程方法是进行RT Linux编程的通用方法,将一个任务分为实时部分和非实时部分,在实时部分完成的是实时任务;在非实时部分主要是完成显示等不需要实时的功能。程序的体系结构如下所示:

  

  限于篇幅,程序代码略。

  6.开发嵌入式RT-Linux的几个问题

  (1)Linux的移植。如果Linux不支持选用的平台,就需要把Linux内核中与硬件平台相关的部分改写,使之支持所选用的平台。

  (2)内核的裁剪。嵌入式产品的可用资源比较少,所以它的内核相对嵌入式系统来说就显得有点大,需要进行剪裁到可利用的大小。

  (3)桌面系统。现代的操作系统如果没有一个友好的界面是没有说服力的。现在的台式机Linux系统使用了传统的X-Window系统的模式—Client/Server结构。和硬件有关的部分即是Server端,实现一个标准的显示接口;应用程序通过对Server的服务请求,实现程序的显示。在此之上,实现窗口的管理功能。但X Window对于嵌入式系统来说显得很庞大。现在国内有MiniGUI,国外有MicroWindow,都在致力于嵌入式Linux GUI的开发。适用于嵌入式Linux上的X-Window的工作也在进行。

  (4)驱动程序的开发。Linux内核更新的很快,许多最新的硬件驱动很快就被支持。但嵌入式系统应用领域是多种多样的,所选用的硬件设备也不同,并且不可能都有Linux的驱动程序,因此,设备驱动程序的开发也是重要的工作。

  7.结束语

  嵌入式系统的开发是剪裁与移植相结合的过程,开发者自己编写的代码并不多。笔者在智能交通监控系统的设计中,通过对Linux适当的剪裁,选择了RT-linux作为系统的开发平台,对于提高系统的开发效率和降低开发成本取得较好的实效。当然,嵌入式系统的发展对嵌入式操作系统提出了更高的要求,因此,对嵌入式操作系统的结构、设计、用户界面等诸多方面进行深入研究,将有助于嵌入式系统的应用和发展。

关键字:Linux  嵌入式  实时操作 编辑:神话 引用地址:基于Linux的嵌入式实时操作系统的研究

上一篇:基于ARM的智能家居路由系统
下一篇:MIPS最新Aptiv三大系列深度解析

推荐阅读最新更新时间:2023-10-12 20:46

Qualcomm骁龙600E和410E现已广泛上市,面向嵌入式计算和物联网
2016年9月28日,圣迭戈 Qualcomm Incorporated(NASDAQ: QCOM)今日宣布,其子公司Qualcomm Technologies, Inc.推出面向多个垂直领域嵌入式应用的骁龙600E和410E处理器,支持如数字标牌、机顶盒、医疗影像、销售网点系统、工业机器人及其他物联网(IoT)相关应用。Qualcomm Technologies已利用其在移动领域针对骁龙处理器的投入,推出面向智能手机以外的产品类别的解决方案。骁龙600E和410E已通过第三方分销商在全球范围内上市,其中首先会由艾睿电子(Arrow Electronics)推出,从骁龙600和骁龙400产品系列首次商用出样后可至少使用10年。这是
[嵌入式]
SIdView 嵌入式Linux集成开发环境
建华科技经过多年研发,成功推出SldView嵌入式Linux集成开发环境。SldView运行于Windows系统中,支持μC/OS_II、μClinux和Linux三种嵌入式操作系统的开发;支持编辑代码、交叉编译和交叉调试的开发全过程;支持Linux内核、驱动、任务级、模块等动态调试;支持内核、驱动、任务、模块等同步调试。 1 当前嵌入式Linux开发模式 嵌入式系统通常为一个资源受限的系统。直接在嵌入式系统的硬件平台上编写软件比较困难,有时甚至是不可能的,开发流程如图1所示,开发模式如图2所示。目前,一般采用的办法是,先在通用计算机上编写程序,然后通过交叉编译,生成目标平台上可运行的二进制代码格式,最后下载到目标平台上的特定
[嵌入式]
对于嵌入式系统微处理器的详细剖析
1. 嵌入式微处理器的基本结构 (1)嵌入式硬件系统一般由嵌入式微处理器、存储器和输入/输出部分组成。 (2)嵌入式微处理器是嵌入式硬件系统的核心,通常由控制单元、算术逻辑单元和寄存器3大部分组成: A、控制单元:主要负责取指、译码和取数等基本操作并发送主要的控制指令。 B、算术逻辑单元:主要处理数值型数据和进行逻辑运算工作。 C、寄存器:用于暂存临时性的数据。 2. 嵌入式微处理器的分类(根据用途) (1)嵌入式微控制器(MCU):又称为单片机,片上外设资源一般比较丰富,适合于控制。最大的特点是单片化,体积小,功耗和成本低,可靠性高。目前约占70%的市场份额。 (2)嵌入式微处理器(EMPU):又
[嵌入式]
德思普将正式发布我国首款物联网嵌入式人工智能“中国芯
“2018物联网及嵌入式人工智能芯片平台及生态战略发布会”论坛将于2017年12月8日在北京北辰洲际酒店举行,是“2017年物联网开发者大会”的分论坛之一。 作为国内领先的物联网芯片平台提供商,德思普科技有限公司将在本次论坛上发布其最新推出的物联网嵌入式人工智能(AI)系列芯片产品,这也是该公司在业界率先推出的首款将广域物联网与边缘计算、嵌入式人工智能融于一体的单芯片平台方案,处于全球同行业的前沿水平。 据了解,德思普将在本次论坛上以“给物联网插上AI的翅膀”为主题,从智能物联网芯片的开发平台、生态建设、应用服务等角度,发布最新的低功耗软件定义无线电、智能物联网终端以及嵌入式人工智能三大类芯片平台。 目前,已有多家企业
[网络通信]
嵌入式系统中电源电压的精确控制
概要   该项目的目标是设计一个高效电源系统,其输出电压(VOUT)可以数字调节。为了保证输出电压的精确性,采用数字闭环控制,用于修正失调、漂移和负载变化(最大至600mA)的影响。电路包括输出可调的降压型控制器、ADC与DAC、电压基准以及一个微控制器(MCU)。   在大多数DC-DC转换器中,位于FB引脚上的电阻网络可以调整转换器的输出电压(见图1)。在本文电路中,利用DAC输出电压(VDAC)改变电阻网路的基准电压,达到调整转换器输出(VOUT)的目的。ADC检测输出电压,并将结果送入微处理器。微处理器调整DAC输出,以控制系统输出电压达到预定值。为使电路尽可能简单,预设输出电压通过PC的串行通信口(R
[电源管理]
ARM-Linux s3c2440 之UART分析(四)
注册完成之后,设备与驱动是如何连接的呢? 原来在driver_register()注册中已经进行设备连接了。 串口是一种platform设备,在体系框架setup_arch()中完成设备注册,而且设备的注册先于驱动注册,最终串口设备与驱动的连接在driver_register() -- bus_add_driver()中完成。 int bus_add_driver(struct device_driver *drv) { intret; structdevice_driver *other; if(drv-
[单片机]
普冉半导体与IAR达成合作,为嵌入式开发者带来卓越开发体验
IAR Embedded Workbench for Arm全面支持普冉半导体32位Arm® Cortex® - M0+/M4系列微控制器 中国上海–2023年10月11日– 嵌入式开发软件和服务的全球领导者IAR与普冉半导体共同宣布达成合作: IAR Embedded Workbench for Arm将全面支持普冉半导体32位Arm® Cortex® - M0+/M4系列微控制器。IAR将为普冉提供完整的开发工具支持,包括但不限于代码编辑、编译、调试等功能,使开发者能够充分发挥普冉MCU的潜力,高效快速推进项目,加速产品上市。 普冉半导体 位居行业前列,专注于提供低功耗的非易失性存储器(Flash/EEPROM)
[嵌入式]
普冉半导体与IAR达成合作,为<font color='red'>嵌入式</font>开发者带来卓越开发体验
小广播
最新模拟电子文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved