电子系统应用开发 嵌入式实时操作系统及应用开发

小编 2024-11-26 论坛 23 0

嵌入式实时操作系统及应用开发

摘要:本文分析了当今主流嵌入式Linux操作系统的特点,介绍了其研究现状,并展望了其未来的发展。

关键词:嵌入式系统,嵌入式操作系统,Linux

嵌入式系统是20世纪80年代由8位单片机发展而来的(基于单片机的系统一般称为传统嵌入式系统),8位单片机只需要编写单一的控制程序即可工作,其解决的问题比较简单,需要的计算量不大,运算速度也较低。然而20世纪90年代后期,随着互联网时代的到来,人类进入了后PC时代(PC出现的20世纪80年代初被称为前PC时代),很多电子设备需要增加TCP/IP联网功能和更加智能化、更高的运行速度要求:比如多媒体音频、视频图像数据的采集、传输和处理(如MP3、MPEG4等);图形界面与触摸屏技术;无线控制技术及相应的软件协议(如BLUETOOTH、IRDA等)。面对这些需求,一方面,8位单片机“力不从心”; 另一方面嵌入式开发者不愿意投入大量的时间去开发开发周期长的产品,新一代的嵌入式系统(以下简称“嵌入式系统”)就是在这样的环境下诞生的。

嵌入式系统的定义有很多种,其中最直接、最通俗的定义就是:控制特定设备的专用计算机系统。它的基本组成为三部分:嵌入式微处理器、嵌入式操作系统以及在其上开发的应用程序,如图1所示。嵌入式微处理器是整个嵌入式系统的核心,是嵌入式操作系统和应用程序开发的硬件平台。目前,市场上的嵌入式微处理器种类繁多,比较流行的有Motorola公司的32位嵌入式处理器系列:冷火系列、龙珠系列、PowerPC系列,以及MIPS系列、ARM系列、X86系列(Intel 386EX、AMD4xx)等。流行的嵌入式操作系统有:PSOS、VXWORKS、WINCE、QNX、LYNXOS、Palm OS、嵌入式Linux(包括RT-Linux、UC-Linux等)。

1 嵌入式Linux操作系统

Linux从1991年10月5日推出至今,仅12年时间,其对全球计算机界的影响已经超过了以往任何操作系统。Linux是一个成熟稳定的网络操作系统,作为嵌入式操作系统,它具有许多显著的优点。首先,Linux的核心源代码是免费的,任何人都可以从互联网上得到。其次,Linux的核心代码是公开的,每个人都可以根据自己的意图对其进行修改和定制,以开发适合自己的产品。第三,Linux的核心代码可以缩减到130多个字节,这可以大大降低开发产品的成本,适应嵌入式系统的发展趋势。第四,Linux的核心代码是用C语言编写的,具有良好的可移植性,因此可以很容易地移植到许多微处理器上。目前流行的嵌入式Linux操作系统有:μC-Linux、RT-Linux、EMBEDIX、Hard Hat Linux、MONTAVISTA Linux、LYNXOS、Blue Cat Linux、ET-Linux、Midori等。下面对一些主流的嵌入式Linux操作系统的特点进行分析和介绍。

1.1 μC Linux

μC-Linux 是 LINEO 公司开发的 Linux 2.0 系统。μC-Linux 一词中,μ 表示 Micro,C 表示 Control,因此 μC-Linux 即 Micro-Control-Linux,字面意思为“针对微控制领域设计的 Linux 系统”。μC-Linux 内核比原版 Linux 2.0 内核小很多,但保留了 Linux 操作系统的主要优点。

(1)内存管理。这部分是μC-Linux与传统Linux最大的区别。标准Linux是针对带有MMU的处理器而设计的,在这类处理器上,虚拟地址会被送到MMU,由MMU将虚拟地址映射到物理地址。而对于μC-Linux来说,它的设计是针对不带MMU的处理器,也就是说,μC-Linux不能使用处理器的虚拟内存管理技术。μC-Linux仍然采用内存分页管理,系统在启动时对实际内存进行分页,应用程序在加载时也分页加载。所以实际上μC-Linux采用的是实内存管理策略。

(2)内核加载方式。μC-Linux内核有两种运行方式。①Flash运行方式:将内核可执行映像文件烧录到Flash中,系统启动时从Flash中的某个地址开始逐句执行。这种方式其实很多嵌入式系统都是采用的这种方式。②内核加载方式:将内核压缩文件存放在RAM中,系统启动时读取压缩文件并在内存中解压,然后开始执行。这种方式相对复杂,但运行速度较快。

(3)可执行文件格式。μC-Linux系统采用平面可执行文件格式,如表1所示。

(4)μC-Linux的主要特点如表2所示。

(5)应用程序库。μC-Linux小型化的另一种方法是重写应用程序库。与日益庞大而全面的GLIBC库相比,μCLIBC对LIBC进行了简化。μC-Linux对用户程序采用静态链接,这会使应用程序体积变大,但由于缺乏MMU,不得不这样做。同时,这种方式也更接近通常的嵌入式系统方式。

(6)许多用户程序被移植到μC-Linux上,包括ftp(文件传输协议)客户端程序、free swan(IPSEC(互联网安全协议)的Linux实现)等等。

1.2 嵌入式

EMBEDIX 是 LINEO 于 2000 年初发布的流行桌面 Linux 操作系统的第一个版本。它是一种嵌入式 Linux 软件解决方案,为 Linux 添加了功能和连接性,以定制嵌入式设备。它是专为机顶盒、个人数字助理 (PDA) 和其他小型设备设计的 Linux 系统。EMBEDIX 不需要硬盘,可以在使用 PowerPC 芯片或 Intel 兼容芯片的终端设备上运行。

LINEO 将实时技术融入 EMBEDIX SDK,为嵌入式设备开发者提供软件和硬件实时能力。EMBEDIX SDK 支持并包含 Metrowerks Code Warrior 集成开发环境 (IDE)。它将文本编辑器、项目管理器、搜索引擎、编译器、连接器和调试器整合为一个集成应用软件,可缩短产品开发周期并降低产品成本。EMBEDIX SDK 还支持在 Windows 下进行开发,可以完全访问本地 Windows 应用程序和工具,并为开发者提供虚拟开发环境(具有可视化集成环境)。这对 Windows 开发者来说非常方便。

1.3 实时Linux

RT-Linux是世界上最早的实时嵌入式操作系统。RT-Linux并没有对Linux内核做大的改动,而是利用了Linux内核模块机制,采取插入模块的方式,通过独立的内核来管理实时任务。RT-Linux是硬实时的,Linux内核被设计成可抢占的,其主要方法是实现一个实时内核来处理硬件消息和接管中断。实时任务可以直接运行在这个内核上,而Linux内核本身则作为最低优先级的Idle Task运行。实时内核有自己的基于优先级的调度算法,Linux内核随时可以被优先级更高的实时任务抢占。实时任务通过特定的通信机制(如FIFO)与Linux进程进行通信。运行在Linux内核上的进程可以完成一些非实时的功能,如图2所示。RT-Linux永远不需要等待Linux释放资源,不需要额外的内存,也不需要与任何数据结构同步(除非在非常严格的控制下)。 RT-Linux目前支持两个商业版本:开放版(GPL)和专业版(以二进制形式发布),专业版比开放版支持的硬件架构更多。

RTLinux/Open3.1是FSMLABS推出的硬实时操作系统,其主要特点有:(1)标准API;(2)优异的实时性能;(3)遵循GNU开源代码;(4)丰富的工具套件(包括GDB调试器、GNU编译器等);(5)可靠的实时编程模式(实时与非实时代码分离,操作系统和应用软件中关键的实时组件将获得绝对的优先权,避免非实时组件影响实时组件的响应时间)。

1.4 蒙塔维斯塔 Linux

MONTAVISTA Linux 是业界领先的嵌入式 Linux 解决方案提供商 MONTAVISTA 最新推出的嵌入式 Linux 操作平台,该产品支持广泛的嵌入式应用,为通讯基础设施、网络、消费电子、仪器仪表和工控设备提供标准的嵌入式 Linux 平台。

MONTAVISTA Linux 2.1 是开源的、免版税的,并且是 100% 纯 Linux 源代码。MONTAVISTA Linux 2.1 专业版支持多种嵌入式处理器,包括 6 种业界领先的处理器:x86/IA-32、PowerPC、Strong ARM、XSCALE、ARM、MIPS。MONTAVISTA Linux 2.1 包括 K-Develop IDE、目标配置工具、库优化工具,并提供超过 215 个应用程序包。其重要改进之一是跨平台开发,支持 14 种主机开发环境,包括 Windows NT/2000 上的 Red Hat、Mandrake、Solaris 和 VM-Ware。

1.5 蓝猫Linux

Blue Cat Linux基于Linux-2.4内核,支持多种处理器,包括Intel XSCALE、Intel IXP1200网络处理器、嵌入式Intel架构等,Blue Cat 4.0版本有诸多特点:

(1)提供独有的GDB扩展函数,用于内核调试;

(2)流行的开发环境和漂亮的用户界面;

(3)能够快速配置内核的功能,大小等;

(4)可提供蓝猫基础支持,供Windows或Linux主机上开发;

(5)采用开放式架构的电源管理和优化解决方案;

(6)更加方便加载和使用已经经过测试的应用组件。

Blue Cat RT 是基于 FSMLABS 的 RT-Linux 技术开发的产品,可以集成到 Blue Cat Linux 套件中。将 Blue Cat Linux 与 Blue Cat RT 结合起来可以为用户提供混合嵌入式系统解决方案。一般情况下,使用通用的嵌入式 Linux 内核;在特定情况下,使用具有实时性能的内核。这样可以提供既满足开放标准嵌入式要求又满足实时要求的嵌入式操作系统解决方案。

2 嵌入式Linux操作系统的发展前景

以信息家电为代表的网络时代嵌入式产品,不仅为嵌入式市场展现了美好的前景、注入了新的活力,也对嵌入式操作系统技术提出了新的挑战。

(1)嵌入式应用软件的开发需要更加强大的开发工具和操作系统的支持。随着互联网技术的成熟和带宽的提高,互联网提供的信息内容日益丰富,应用项目多种多样。手机、微波炉等嵌入式电子设备的功能已不再单一,电气结构也更加复杂。为了满足应用需求,设计人员采用功能更加强大的嵌入式处理器(如32位、64位RISC芯片或信号处理器DSP)来增强处理能力。同时还采用实时多任务编程技术和交叉开发技术来控制功能复杂度,简化应用程序设计,保证软件质量,缩短开发周期。此外,嵌入式系统还应要求具有高度简洁、可靠、应用广泛、易于开发、多任务处理和低成本的操作系统。因此,Linux作为一个完全免费和开放的OS,必然会成为今后开发嵌入式系统的首选操作系统。

(2)网络化已成为必然趋势。为适应嵌入式分布式处理结构和互联网应用的需要,嵌入式系统需要一个或多个标准的网络通信接口(IEEE1394、USB、CAN、蓝牙等)和相应的网络协议簇(TCP/IP、SNMP等)。Linux与生俱来的优良网络血统为互联网应用的发展铺平了宽广而平坦的道路。

(3)实现小型化、低功耗、低成本。从某种程度上讲,嵌入式产品的小型化、低功耗、低成本与处理器的高性能是一对不可调和的矛盾。因此,要实现小型化,就要求处理器的性能相应降低;同时也对嵌入式软件设计技术的要求也相应提高。对于系统小型化,Linux可以说是众多嵌入式操作系统中做得最好的。由于Linux的源代码是公开免费的,可以根据需要进行裁剪、修改,从而实现系统软件的小型化。

(4)提供完善的多媒体人机界面(HMI)。嵌入式设备受到亿万用户青睐的重要因素之一就是其与用户的亲和力和自然的人机交互界面。人与信息终端的交互需要以GUI屏幕为中心的多媒体界面。目前嵌入式Linux的GUI系统有Micro Windows、Open GUI、Qt/Embedded、Mini GUI等。总之,拥有让客户满意的人机界面也是嵌入式系统未来的发展方向。

(5)嵌入式操作系统走向融合。面对如此众多的嵌入式操作系统,开发人员有时会感到不便。这是因为,如果在基于OS1的操作系统上开发的应用程序,现在要在OS2上使用,必须先移植后才能使用。随着嵌入式设备的不断发展,未来肯定会出现一种可以支持几乎所有应用程序的操作系统。也就是说,未来的嵌入式操作系统必然会走向融合。唯一能担当这一重任的无疑是Linux。因为它提供了一种游戏规则,让任何人都可以自发地为自己的发展寻找出路。

3 结论

据一家专门发布嵌入式Linux系统信息的网站所做的调查显示,52%的用户已经决定在未来24个月内以Linux作为嵌入式系统开发的原型,而只有21%的用户仍然使用专有操作系统,19%的用户仍然使用Windows系列操作系统进行嵌入式系统开发。这充分说明了使用Linux开发嵌入式系统的生命力。由于Linux嵌入式系统强大的生命力和利用价值,越来越多的公司和大学对其研究表现出不同程度的兴趣。因此,基于Linux的嵌入式系统必将成为未来嵌入式领域的领头羊。

参考

1 李善平, 刘文峰, 王焕龙. Linux与嵌入式系统. 北京: 清华大学出版社, 2002

2 Tansi Studio.嵌入式系统开发圣经.北京:中国青年出版社,2002

3 邵贝贝译.嵌入式实时操作系统UC/OS-Ⅱ(第2版).北京:北京航空航天大学出版社,2003

4 毛德操, 胡希明. Linux内核源代码场景分析(上、下册). 杭州: 浙江大学出版社, 2001

嵌入式实时操作系统及应用开发

摘要摘要随着计算机技术的进一步普及,嵌入式微型计算机越来越普遍,其性能也越来越高——运算速度越来越快、内存空间越来越大、外围系统越来越复杂,系统性能越来越接近一般微型计算机系统,同时还兼具嵌入式系统功耗低、体积小、稳定性高等优点。而作为嵌入式系统核心的嵌入式实时操作系统,其功能和性能也逐渐接近桌面操作系统。目前,嵌入式操作系统主要有三种:嵌入式Linux、Symbian和W'mdows Embedded CE。嵌入式Linux完全开源,其主要推动者是基于Linux和PS架构的芯片公司,深受Linux开发爱好者和消费电子产品开发者的喜爱。Symbian主要应用于诺基亚智能手机,在智能手机操作系统市场占有700%的市场份额。 Windows Embedded CE是Windows Mobile操作系统的基础,占据了卫星导航系统和智能手机90%的市场份额。本文重点对W'mdows Embedded CE5.0多进程嵌入式实时操作系统的内核进行了详细的分析和研究,包括工作原理、实现方法、进程与线程、内存管理、信息保护与安全、调度与资源管理等模块的优缺点;同时为了满足产品的需要,对W'mdows Embedded CE5.0嵌入式实时操作系统的系统虚拟内存管理进行了修改,以满足降低成本、提高性能的需要。

本文以基于Intel的Xscale芯片PXA270和移动图形图像加速芯片2700G的跨产品公共平台开发项目为依托,采用W'modews Embedded CE5.0作为平台开发平台,深入分析了嵌入式实时操作系统的原理和技术细节。根据项目需要,对W'modews Embedded CE5.0的虚拟内存管理进行必要的修改,使其能够支持基于外部存储的虚拟内存。这是优化嵌入式多任务操作系统性能的有益尝试,同时也加深了对嵌入式操作系统原理的理解,为设计更加稳定可靠的嵌入式产品奠定了一定的基础。关键词:嵌入式系统 嵌入式实时操作系统 进程 信号量 虚拟内存 摘要 摘要 计算机技术 嵌入式实时操作系统(RTOS)是一种可以实现快速可靠的内存存储与共享的嵌入式实时操作系统,也可以用于存储和管理虚拟内存。 嵌入式系统是社区的核心,其功耗低,体积小。因此,这些嵌入式结构和功能的存在作为基于人群的开发工具,应该被视为基于人群开发的关键因素。嵌入式Linux是由电子开发商和咨询公司开发的;Symbia:现在诺基亚已在智能手机中使用,占据了智能手机约70%的市场份额;Windows Embedded CE是Windows Mobile的基础,它占据了GPS设备90%以上的市场份额,而Windows Mobile占据了智能手机20%以上的市场份额。 本文将重点对嵌入式系统在过程安全调度和资源管理研究领域的应用进行分析,研究过程安全调度和资源管理模块的开发、模块的实现以及模块的优化和缩短。 我来帮你了 我来帮你了 我来帮你了 我来帮你了 本文基于Sed 01《1》通用交叉程序和Intel测试Xscari串行程序的硬件组件以及测试移动graphis视频采集电路——Intel 2700G软件大战EphffforrmWmdovedded CE 5.0. 本书的主要内容包括介绍Windows Embedded CE5.0的虚拟内存管理理论和实现方法,以及对Windows Embedded CE5.0的虚拟内存管理所做的更改,以便读者能够掌握虚拟内存;这将有助于我们更好地执行制造和实现虚拟内存;这将有助于我们深入细致地制定计划;这将有助于我们深入细致地制定计划; 本人声明:所提交的学位论文是在本人的导师指导下进行的研究工作和研究成果。

据我所知,除了文中特别标注和致谢的地方外,本论文不包含他人已经发表或撰写的任何研究成果,也不包含任何用于获得电子科技大学或其他教育机构学位或证书的材料。我的同事对这项研究所做的任何贡献都已在论文中明确说明和致谢。签名:论文授权说明本学位论文作者充分了解电子科技大学关于学位论文留存和使用的规定,有权留存并向国家有关部门或机构提交论文复印件和磁盘,允许查阅、借阅。我授权电子科技大学将学位论文内容全部或部分收录于有关数据库以供检索,并以影印、缩小打印或扫描的方式保存、汇编学位论文。 (密级论文解密后须遵守此规定) 签名:Shengying 签名:Z Yi 第一章 系统概述 1.1 嵌入式系统概述 第一章 系统概述 嵌入式系统是针对系统应用,以微计算机技术为基础,软硬件可在一定基础上精简,适用于对系统功能、可靠性、成本、体积、功耗等指标有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统和用户应用程序四部分组成,实现对系统的监控和管理。集成电路技术的飞速发展,使嵌入式微处理器的性能越来越接近个人计算机系统,集成度的提高直接导致硬件成本的快速下降和系统稳定性的大幅度提高,由此产生了基于SoC(System Package)等技术的单片嵌入式系统。 嵌入式软件作为嵌入式系统的灵魂,其规模越来越庞大、复杂,逐渐由简单的计算、控制发展到支持并行多任务的高度实时的复杂系统,嵌入式操作系统也朝着开放性、多任务的方向发展。

1.2嵌入式操作系统的发展历史电子数字计算机诞生于1946年,在此后漫长的历史中,计算机一直都是大型、昂贵的设备,被放在专门的机房里,用来进行数值计算。直到20世纪70年代,微处理器的出现才给计算机带来了历史性的变革。以微处理器为核心的微型计算机由于体积小、价格低、可靠性高等优点,很快便走出了机房。微型计算机以高速数值计算能力为基础的智能化水平引起了控制专业人员的兴趣,他们要求将微型计算机嵌入到对象系统中,实现对对象系统的智能化控制。例如,微型计算机经过电气加固、机械加固,加上各种外围接口电路,安装在大型船舶上,组成自动驾驶仪或发动机状态监控系统。这样,计算机就失去了原来的样子和一般计算机的功能。为了与原来的一般计算机系统相区别,将嵌入到对象系统中实现对对象系统智能化控制的计算机称为嵌入式计算机系统。 微型计算机的出现,将计算机带入了现代计算机发展的阶段。嵌入式计算机系统的诞生,标志着通用计算机系统与嵌入式计算机系统并行发展时代的开始,带动了20世纪末计算机的飞速发展。通用计算机系统与嵌入式计算机系统之间的专业化分工,带动了20世纪末21世纪初计算机技术的飞速发展。

计算机专业领域侧重于发展通用计算机系统的软硬件技术,没有考虑到嵌入式应用的要求。通用微处理器从286、386、486迅速发展到奔腾系列;操作系统迅速扩展了计算机处理高速海量数据文件的能力,使通用计算机系统走向了完善的阶段。嵌入式计算机系统走了一条完全不同的道路,这条独立的发展道路就是单片机道路。它调动了传统电子系统领域的原有厂商和专业人员,接手了起源于计算机领域的嵌入式系统,承担起发展和普及嵌入式系统的历史任务,迅速将传统电子系统发展到智能化的现代电子系统时代。由于各种因素的制约,嵌入式操作系统的发展远远落后于个人计算机操作系统,没有形成标准。总体上,嵌入式操作系统的发展经历了两个截然不同的阶段:RTOS和OS。在RTOS阶段,操作系统只负责任务的创建、调度和终止以及中断处理。 该类RTOS出现于20世纪80年代,通常运行在8位MCU和16位MCU上。应用RTOS有利于缩短嵌入式软件开发周期,提高嵌入式CPU的利用率,满足实时性的要求。具有代表性的RTOS有美国Windows River公司开发的VxWorks、日本Ken Sakamura教授倡导的Tron等。在OS阶段,操作系统提供更多的服务,特别是增加了可被独立应用程序直接调用的中间件,具备文件系统、网络通信等服务功能,因而有了嵌入式独立应用程序的概念。这种嵌入式OS出现于20世纪90年代,具有代表性的嵌入式OS有美国Microsoft公司开发的Windows Embedded CE、Symbian、PalmOS、Embedded Linux等。这些OS的广泛使用,为嵌入式系统的信息化奠定了坚实的基础,并日益影响和改变着人们的生活。

1.3嵌入式操作系统的发展前景嵌入式操作系统的发展伴随着人们对消费电子产品各种新功能需求的不断创新发展,特别是人们对移动信息终端性能和功能的不断追求,更促进了嵌入式操作系统的快速发展。目前,智能手机中的操作系统基本分为Sync、VcmdowsCE(Mobile)、Linux、PalmOS等,这些嵌入式操作系统的市场份额如图1.1所示:第1章系统概述图1.1智能手机操作系统的市场份额嵌入式操作系统快速发展的动力来自于市场需求,而个人移动信息终端就是一个非常有代表性的产品。个人移动信息终端产品的市场需求主要体现在一个

相关问答

什么是 电子 信息工程 应用 ?

电子信息工程进行电子信息控制和信息处理的学科电子信息工程是一门应用计算机等现代化技术进行电子信息控制和信息处理的学科,主要研究信息的获取与处理,电...

电子 商务 系统 开发 方法是什么?

电子商务系统目前使用的开发方法有以下两种:1、瀑布模型(生命周期方法学)结构分析、结构设计,结构程序设计(简称SA—SD—SP方法)用瀑布模型来模拟。各阶段...

应用电子 专业智能产品 开发 方向的大专实习生,该从事什么行业,很迷茫大神能指点迷津吗?

你可以去干一些你自己感兴趣和自己比较擅长领域的工作。如果你对自己所学的专业知识很有自信,学的很棒,那么你就可以去一些电子和智能相关企业去应聘。你比如...

计算机 应用 ,软件 开发 电子 商务,哪个专业好?

电子商务和软件开发目前是一种趋势。随着移动应用的逐渐发展,5g时代的来临。移动数据应用会在普遍应用,现在正在逐步在应用刷脸支付。电子商务呢,分线上线下,...

信息系统 的毕业生选择哪些职业比较有发展空间? 申请方

方面,管理专业不懂技术,计算机专业不懂管理——现在企业更多是需要综合型的人才。无疑,只要我们学得够专业,弱项很可能就成为了我们的优...无疑,...

大学什么专业从事 电子 设备 开发 还有软件 开发 ?

首先这个专业偏硬件,最好的可以去做硬件开发工程师,也可以去做网络相关工作,设备维护,技术支持,维修,还可以进电子厂做生产技术员,也可以画电路板,还可以...

一个 电子 产品是如何 开发 出来的?

一个电子产品的开发一般会经历以下阶段,不同性质的产品可能会有所增减。市场调研当电子产品初具想法的时候需要先进行调研,查看市面上是否有类似的产品。产...

应用电子技术 教育是学什么的?就业前景怎么样啊? 申请方

毕业后去教书,对于女孩子来说这应该是很不错的选择!男生可能选这条路的还是少吧,我们班还有一部分人是去电子类的公司上班,比较辛苦点。如果学的好...

该怎么学好软件 开发 专业?

软件开发专业的学习要有一个系统的学习计划,要依赖于软件专业的知识结构来进行计划的设计,软件开发专业的知识结构包括三个大块内容,分别是基础课、计算机专业...

学软件 开发 专业的毕业后能做什么?

软件开发找工作选择性会比较大吧,薪资待遇也是相对不错,现在是信息时代社会,需要大部分软件开发人员!很多岗位都离不开技术,信息飞速发展的社会能给我们带来...