ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:32.92KB ,
资源ID:11123109      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11123109.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(嵌入式系统翻译.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

嵌入式系统翻译.docx

1、嵌入式系统翻译Linux 作为一种嵌入式操作系统 作者:Jerry EpplinLinux 作为一种嵌入式操作系统有潜力吗?高档商业RTOS 厂商会穿着布鲁诺玛格里站立不稳吗?本文将评估Linux 的功能性,强壮性,局限性,以及最重要的是,它的实时处理设施。更多地使用PC 硬件是近几年来高端嵌入式系统中最重要的发展之一。由于这个趋势,高档系统的硬件成本已经大幅下降,使得有些以前由于非基于PC 的嵌入式硬件成本之高,不会被做的项目成为可行。但作为嵌入式PC 平台,软件的选择却不像硬件那么有吸引力。您可以选择DOS,但它有众所周知的局限性;微软Windows,缺乏实时能力;或某种高端实时操作系统,

2、它昂贵,专用,而且大多不可移植。Linux 操作系统为上述选项提供了一个非常具有吸引力的替代方案,它没有上述缺点。Linux 操作系统以前几乎只是被有太多空闲时间的Unix 爱好者用于台式电脑,现今已发展成一个必须被认真对待的又先进又可靠的操作系统。其中一个最近期的发展是对操作系统添加实时设施,它完成了Linux 从一个爱好者的玩具到一个被嵌入式系统设计师使用的宝贵工具的转型。这些实时设施还没有那些高端RTOS 中使用的设施先进,Linux 永远不会适用于必须尽量减少RAM 和ROM 使用的系统。但是,对于许多应用,Linux 系统的优点能克服这些缺点。在嵌入式系统中使用PC 硬件的优点现在已

3、众所周知了。与许多专为嵌入式市场开发的硬件相反,PC 硬件是大规模生产的,容易获得,成本低廉。您可以预期模拟和数字输入/输出板,网络接口,图像采集与处理板之类接口板,用VME 总线设计时要比用某种PC 总线设计时多花两倍以上成本。随着高性能PCI 总线越来越多的使用,使用PC 平台时吞吐量也不再有什么问题。但在操作系统的能力方面并没有发生与此相称的革命。随着对较低硬件成本的需求,高端嵌入式系统需要更先进的功能,如图形用户界面和联网能力。许多高端RTOS 的供应商们提供了这些能力,这往往是要求更高价格的选项。微软Windows 也提供了这些功能,但它缺乏多数嵌入式系统要求的实时功能。人们或许可以

4、以DOS 为基础拼凑一个系统,对每个组件都采用单独的第三方工具,但具体实施起来必会失败,因为不存在为建立这样一种系统提供的支持。我们需要的是一个有足够多支持的操作系统,它既便宜又成熟,而且提供了高端嵌入式系统必须具备的功能。由于上述许多理由,Linux 操作系统最近开始受到来自主流出版界的注意。1 许多台式机用户被它的功能和强壮性所吸引,另一个事实是,要取得它只需花费通过FTP 进行下载的成本。它包括UNIX 用户期待的一套完整的功能和开发工具。几乎所有的Unix 系统和应用软件已被移植到了Linux 系统。提供了基于TCP/IP 的网络协议。提供了互联网客户机和服务器软件。提供了XWindo

5、ws,并可以在几个窗口管理器中进行选择。为C ,C,Java 和其他语言配备了良好的编译器。用户能发现这些功能比Windows 提供的更成熟,更完整,也更容易使用。很多公司都至少有一个Linux 的爱好者,当一个问题很难或根本不可能用Windows 解决(例如,配置一台PC机作为拨号网络服务器),他马上会说嗯,要是我们有Linux 系统就好办了 现在,不管比尔盖茨是否有点担心在一些杂志中辩论的一个主题。重要的是不被任何公司拥有和支持的Linux 正开始被很多不能被认为是电脑迷的桌上型电脑用户所接受。如今这点之所以成为可能,是因了操作系统的成熟以及过去几年中因特网的日益风行。遇到问题的Linux

6、 用户能通过因特网新闻组和邮寄名单获得数以千计的联机用户的专门知识的帮助。您遇到的任何问题必然已经被这些用户之一所遇到过,并且其中大部分人都愿意帮助您。以我的经验而言,与依赖于RTOS 技术支持部门相比,使用因特网资源通常能更快地解决问题。您可能必须整理来自其它新闻组参加者的成打的非正式回答,但是至少有一个回答是可能有帮助的。比较起来,您从技术支持部门一次只能得到一个答案。如果它并非恰当,您必须再次开始整个过程。此外,为Linux 提供支持的公司也已经开始出现,为那些觉得与常规技术支持部门打交道更自在的用户提供了一个选择余地。此外整个Linux 提供了源代码,为回答最困难的问题提供了种种手段。

7、有些嵌入系统设计者会发现就现状来说Linux 已很好用。它在视窗或者DOS 之外,为那些没有实时要求的应用或者虽有实时要求但可以采用专用硬件或协处理器的应用提供了一个好的替代选择。但是这种应用非常罕见。需要有一种方法用Linux 实现实时系统,在这方面已经取得了足够进展,允许实现很多高端嵌入式应用。被采用的实时Linux 方案有两种,我把它们称为POSIX方案和低层次方案。POSIX 和LinuxPOSIX 是一种运动,以规范Unix 型操作系统必须具备的功能和接口类。设想是,提高用UNIX编写的软件可移植性,使Unix 程序员的工作更为容易。一些实时扩展,称为posix.1b 或IEEE10

8、03.1b,已被列入标准。这些扩展包括如信号量,内存锁定,时钟和定时器,消息队列,和先占优先级调度等设施。使用 POSIX 作为规范实时操作系统的特点的基础已被正确地批评。 2 该标准大而拙劣,有许多臃肿的适合桌面UNIX 工作站的功能,但无助于嵌入式系统。该标准的决策机构主要是受工作站制造商的支配,不愿对RTOS 的供应商和用户作出让步。此外,POSIX 系统调用反映了Unix系统调用的晦涩和繁琐的语法,使得使用VxWorks 或pSOS时只要1,2 次调用的操作竟需要十多次POSIX 调用。Unix 程序员习惯了这种烦扰,但嵌入式系统程序员却觉得无法忍受。许多 Linux 开发人员正在Li

9、nux 中努力实施posix.1b 功能。 3 这一运动已经看到了一些成功,并仍在继续努力。 POSIX 扩展内存锁设施和确定调度算法的功能已付诸实施。另一方面,计时器功能和posix.1b 讯号尚未完成。或许最严重的是,任何认真的RTOS 必不可少的POSIX信号量和消息队列功能尚未可用。一个基于POSIX 的Linux 的有前途的发展是POSIX 线程的实现,它在posix.1c (或IEEE1003.1c )中定义。在一个进程中,您可以有多个线程,共享同一地址空间。这与熟知的嵌入式系统中的任务概念刚好相符。Linux 中已有一些POSIX 线程实现可供使用。尽管实现一个实时Linux 的

10、POSIX 方案还是有一些前途的,但在目前和可预见的未来,只有最软的实时应用能够用posix.1b 功能来实现。企图把posix.1b 功能移植到Linux 所面临的最根本的问题是,事实上Linux 有一个非先占式内核。所以如不从根本上改变内核的设计,要实现硬实时特性,看来似乎是不可能的。不过,至少有一个小组已经成功地完成了这个目标。实时Linux 的低层次方案比基于 POSIX 的运动更有直接利益的是实现一个硬实时Linux 的努力,其中最有前途的可能是新墨西哥采矿h 和技术学院的实时Linux(RT-Linux)项目。由于观察到Linux 是一种为台式电脑用户设计的操作系统,那儿的研究者得

11、出结论,尝试把实时功能嫁接到一个为分时设计的操作系统将是徒劳无益的。4 他们的替代办法是在操作系统下面实现一个简单的实时内核,把Linux 本身作为该内核里运行的一个任务。Linux 的运行具有最低的优先权,而且可以在任何时候被更高优先权的任务所抢先。RT-Linux 的设计理念是,只提供必要的为实现实时应用必需要件,以尽量减少对Linux 本身进行变更。5 由于尽量减少打扰Linux,就更容易把RT Linux 移植到后来出现的新版本Linux。因此,RT - Linux 依赖于Linux 本身,以提供几乎所有的必需服务,而RT-Linux只提供低层次的任务创建,安装中断服务例程,并为各种低

12、层次任务,中断服务例程,和Linux进程之间的通信提供排队。这种设计的结果之一是,一个RT-Linux 的应用可以被当成具有两个领域-实时的和非实时的。实时领域里的功能能满足其实时性要求,但必须非常简单,因为它们可用的资源相当有限。另一方面,非实时功能有全方位的Linux 资源可供利用,但不能有任何实时性要求。为两个领域之间的通信提供了各种设施。但在使用RT-Linux 之前,嵌入式系统设计师必须确保所有必要的功能可以纳入这两个领域之一。使用RT-Linux 并不会魔术般地使原有Linux 功能变成实时功能。举例来说,假设某设计师有一个用于串行端口的Linux 驱动程序,并希望在一段固定时间内

13、在串行端口接收到一串字节后触发一条并行输出线(使用一个实时任务)。Linux 的串行驱动器不能使用,因为它位于非实时域内,您无法预测何时串行驱动器会唤醒实时任务,驱动并行输出线以履行其工作。因此,无论是串行和并行端口,都必须放在实时域里,这就需要重新设计串行驱动器。RT-Linux 用于任务处理的设施是很基本的。首先有rt_task_init(),它创建并启动一个任务。可以指定栈的大小和优先级。Linux 本身作为一个优先级最低的实时任务进行运行。任务可以用rt_task_make_periodic()设置成周期性地运行。rt_task_wait()设施封锁调用者任务。各任务在一个简单的先占式

14、调度器控制下运行。实时任务和Linux 进程之间的主要通信手段是FIFO(先进先出)。rtf_create()设施创建一个指定大小的FIFO。rtf_put()使数据进入FIFO 队列,如FIFO 已满则返回一个错误。同样,rtf_get()使数据退出FIFO 队列,如果FIFO 为空,则返回一个错误。FIFO 机制的最明显的用途是数据流控制。在数据采集应用中,例如,可以用rt_task_init()和rt_task_make_periodic()设立一个实时任务,从某一I/O 板以固定时间间隔获取样本数据。该任务将用rtf_put()把它的数据发送给一个Linux 进程。Linux 进程,将

15、执行一个循环,从FIFO 读取数据,然后也许把数据写到磁盘中,在网上传送,或把它显示在一个X 窗口中。FIFO 将起缓冲作用,从而Linux 进程可以进行操作而不受实时时间限制。实现数据流系统似乎已成了RT-Linux 设计师的首要动机。但FIFO 机制提供了一个不错的实现信号量的方法。二进制信号量可以是实现各种信号量的好方法。创建一个大小为1 的FIFO,即可实现二进制信号量。 让出操作(也称为V或信号 )只是一个单纯的大小为1 的rtf_put(),数据内容和出错返回可被忽视。获取操作(也称P或等待 )是一个大小为1 的rtf_get()。要实现计数信号量,只需创建一个FIFO 其大小应足

16、以容纳预期的让出操作数。所以FIFO 机制提供了在实时应用中为任务同步所需的大部分功能。目前的实现还缺乏一些RTOS 用户熟悉的功能,如优先级继承(以防止优先级反转)和任务的删除安全性。但通过仔细设计,几乎总可以避免这些功能所对付的问题。此外,虽然FIFO 的操作可以被确立成当数据不可用(读取FIFO 时)或空间不可用(写FIFO 时)时引起封锁,但这样做的语法相当麻烦,因为阻塞功能似乎并非设计者的优先考虑。不过,至少有一个努力正在进行,以提供一种简单的语法封锁对FIFO 的操作。6 这一努力也会实现执行封锁时的超时,这是许多嵌入式应用中的一个重要特点。RT-Linux 的简单而开放式的设计允

17、许用户能很容易地实现这些额外的喜好特点。RT-Linux 的一个有趣的方面是设计师借以使Linux 内核可先占的方式。Linux,如同多数UNIX 型操作系统,有一个在很长一段时间内禁用中断的内核。这其实正是Linux 之所以是一个非实时操作系统的原因。可以采用两个办法来解决这个问题。其一是重新设计内核,使之可以被先占。但Linux 内核又大,又复杂,而且受到频繁的修改。它的设计者是一些对实时应用没有什么兴趣的程序员。因此,要把某种实时的思维定式施加到现有代码上去是不切实际的。即使做了一次修改,每当发布一个Linux 新版本就重新审视并重新进行修改也不切实际。RT- Linux的设计师采取了另

18、一种做法,使Linux 可先占。他们把中断分为两组:由Linux 控制的中断,和由RT-Linux 控制的中断。RT-Linux 中断,类似于RT-Linux 任务,被限制于可以自行完成的工作,不能执行Linux 调用。因此,没有理由认为它们不能中断Linux 内核。总之,如果他们不改变内核中任何东西,它们就不能干预核心中的任何事情。另一方面,Linux 中断不能允许中断内核。因此,RT-Linux 的实现了一个虚拟的中断机制,其中Linux 本身决不允许禁止中断。Linux 使用”cli”和”sti”宏实现禁用和启用中断。在标准Linux 中,这些宏只是执行相应的x86 指令。RT-Linu

19、x 修改了这些宏,使得执行”cli”时不是禁用中断,它只是把中断引至一些RT-Linux 的代码。如果中断是一个RT-Linux 中断,则允许继续。如果这是一个Linux 中断,则设定一个标志。当”sti”被执行时,任何悬置的Linux 中断被执行。按这种方式,Linux 仍然不能中断本身,但RT-Linux 可以打断它。RT-Linux 很简单,只提供为实现一个实时系统所必须的最低限度的功能。但这种简单性符合系统设计师的利益。您通常会用Linux 进程实现大部分的应用,因为Linux 本身很坚实,稳定且流行于很多台式机用户,因此您知道如果您遇到麻烦您可以得到帮助。实时任务应该只有执行实时I/

20、O 以及通过Linux 进程传送数据时所需的功能。RT-Linux 的简单性有两个好处:第一,它非常简单,因此它不太可能漏洞百出;第二,如果您发现了错误,也可能很容易被找到并修复。这些因素是很重要的。因为实时系统是Linux 应用软件中很小一部分,您可以找到的用于开发使用RT-Linux 的代码资助金额必定也很少。因此,一个功能丰富的RT-Linux 未必是所期待的。现在实施的功能如果运用得宜,对于绝大多数实时系统也已足够了。Linux 显然不是适用于所有嵌入式电脑的最佳平台。由于其大小,一个完整的基于GUI 的系统必须实现成一个基于磁盘的系统,或一个连接到网络且可以从网络启动的系统。但是,仍

21、然有大量的越来越多的嵌入式应用可以运行于一台磁盘,且需要内置于Linux 的GUI 和网络功能。例如,许多医疗设备为了竞争,必须具有有吸引力的用户界面,工业机器控制必须兼备GUI 和联网功能。要把这样一个系统与DOS 或低端RTOS 拼凑在一起是不切实际的。向高端RTOS 供应商支付高达700 美元的版权费则毫无可能。Linux 提供了一个方法,免费地提供这些功能。它们不光是免费的,而且它们通常比RTOS 供应商所提供的更合乎时宜,他们通常都是提供那些在桌面OS 中早已可用的功能。除了最近使Linux 能用于基于磁盘的嵌入式系统的发展,在使它能从EPROM 开机方面已取得了一些进展。通过只安装

22、那些为应用所需的组件,在许多情况下,可以使用Linux 拼凑出一个无盘系统。因此,举例来说,至少已有一个包括Linux 网络(但不含X Windows)的完整系统为Linux 仅用了2.7MB 的EPROM 被拼凑了出来。7 因此,现在已可以用Linux 开发实用的独立无盘嵌入式系统。此外,从网络启动Linux 的功能早已确立。因此,一个驻留在网络上的系统可以从网络中某处的一台磁盘启动包括X 窗口的整个系统。前景Linux 遵循GNU 运动的思想, 通过成千名程序员的协作努力产生高质量的软件。GNU,如同Linux,以前曾被嘲笑为业余爱好者和有太多闲功夫的发烧友的玩具。但现在所有怀疑论者都不得

23、不承认,GNU 已经产生了一些世界级的软件,尤其是gcc 和g+编译器。这些产品都可以和最优秀的商业编译器竞争,甚至高端RTOS 产品,如VxWorks 和lynxos 都使用它们。对RTOS编译器已发生的事情对OS 自身也可能发生。基于Linux 的RTOS 产品将开始出现,供应商在强调它们外加的实时特点同时,也会强调它们的支持。结果将是高端嵌入式系统开发者的一个富矿,即使是最便宜的RTOS 产品提供的功能也比现有最昂贵的产品所提供的更多。作者简介:Jerry Epplin 在 St. Louis, MO 的一个嵌入式软件顾问。主要工作是为医疗和工业设备制造商设计软件. 邮箱:JerryEp

24、plin 。有问题可以邮件联系。参考文献1. Mohr, Jim, The State of Linux, Byte , January 1997.2. Joseph, Moses, Is POSIX Appropriate for Embedded Systems?, EmbeddedSystems Programming , July 1995, p. 90.3. Kuhn, Markus, A Vision for Linux 2.2-POSIX.1b Compatibility and Real-TimeSupport, ftp:/informatik.uni-erlangen.de/

25、local/cip/mskuhn/misc/linux-posix.1b, December 1996.4. See http:/luz.cs.nmt.edu/rtlinux5. Yodaiken, Victor, and Michael Barabanov, A Real-Time Linux,ftp:/luz.cs.nmt.edu/pub/rtlinux/papers/usenix.ps.gz .6. See http:/stereotaxis.wustl.edu/ jerry .7. Bennett, Dave, Booting Linux from EPROM, Linux Journ

26、al , January 1997.原文:Linux as an Embedded Operating System by Jerry EpplinDoes Linux have potential as an embedded operating system? Should vendors ofhigh-end commercial RTOSs quake in their Bruno Maglis? This article assessesLinuxs features, robustness, limitations, and most importantly, its real-t

27、imefacilities.The increasing use of PC hardware is one of the most important developments inhigh-end embedded systems in recent years. Hardware costs of high-end systemshave dropped dramatically as a result of this trend, making feasible some projectswhich previously would not have been done because

28、 of the high cost ofnon-PC-based embedded hardware. But software choices for the embedded PCplatform are not nearly as attractive as the hardware. You can choose DOS, with itswell-known limitations; Microsoft Windows, with its lack of real-time capability; orone of the high-end real-time operating s

29、ystems, which are expensive, proprietary,and mostly non-portable. The Linux operating system presents an attractivealternative to these options, having none of the above disadvantages. Previouslyused almost exclusively on the desktop computers of Unix enthusiasts with toomuch free time, Linux has ev

30、olved into a sophisticated and reliable operatingsystem that must be taken seriously. One of the most recent developments hasbeen the addition of real-time facilities to the OS, which completes the transition ofLinux from a hobbyists toy to a valuable tool to be used by embedded systemdesigners. The

31、se real-time facilities are not yet as sophisticated as those availablein high-end RTOSs, and Linux will never be appropriate for systems that mustminimize RAM and ROM use. However, for many applications, the advantages ofLinux overcome these drawbacks.The advantages of using PC hardware in embedded systems are by now well known.In contrast to much hardware developed specifically for the embedded market, PChardware is mass-produced, easily available, and cheap. You can expect interfaceboards such as analog and digital

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1