嵌入式操作系统

上传人:jkl****17 文档编号:179610446 上传时间:2023-01-02 格式:DOCX 页数:7 大小:22.64KB
返回 下载 相关 举报
嵌入式操作系统_第1页
第1页 / 共7页
嵌入式操作系统_第2页
第2页 / 共7页
嵌入式操作系统_第3页
第3页 / 共7页
点击查看更多>>
资源描述
嵌入式系统是根据应用的要求,将操作系统和功能软件集成于计算机硬件系统之中,从而实现了软件与硬件一体化的计算机系统。嵌入式系统一般不提供与终端用户交互的手段,具有小巧、高度自动化、响应速度快等特点。作为嵌入式系统灵魂的嵌入式操作系统,是随着嵌入式系统的发展而出现的,它是嵌入式系统发展到一定阶段的产物。嵌入式操作系统的出现,将大大提高嵌入式系统开发的效率,改变以往嵌入式软件设计只能针对具体的应用从头做起的历史。在嵌入式操作系统之上开发嵌入式系统将减少系统开发的工作量,增强嵌入式应用软件的可移植性,使嵌入式系统的开发方法更具科学性。可以说,嵌入式操作系统的出现为嵌入式系统的发展铺平了道路。嵌入式操作系统负责嵌入式系统的全部软、硬资源的分配、调度工作,控制并协调并发活动,它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。常见的几种嵌入式操作系统,现行应用中比较流行的嵌入式操作系统有Linux、WindowsCE、VxWorks、eCos、C/OS-II、QNX等,下文将列举这几种相对常见的嵌入式操作系统特性,作为设计选择参考。1.嵌入式LinuxLinux是开放源代码、免费使用和自由传播的操作系统,发展历史悠久,第三方应用软件非常丰富,多数自由软件都能够运行在Linux系统上。Linux经过不断改版升级,已经发展成一个遵循POSIX标准的纯32位多用户多进程操作系统。嵌入式Linux是将Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行。它广泛应用在移动电话、个人数字助理(PDA)、媒体播放器、消费性电子产品以及航空航天等领域。嵌入式Linux因此具有丰富的开放源代码资源,又具有嵌入式操作系统的特性,有许多公开的代码可以参考和移植,免费的OS使其在价格上极具竞争力。Linux的内核小、效率高,内核的更新速度很快;Linux可定制,其系统内核最小只有约134 KB。Linux适用于多种CPU和硬件平台,是一个跨平台的系统。到目前为止,它可以支持Alpha、ARM、M68K、MIPS、PowerPC、SH、SPARC、MicroBlaze、Intel X86等二三十种CPU。Linux具有丰富的可配置组件,如数量繁多的设备驱动程序、多媒体、文件系统、网络、内存管理等。嵌入式Linux系统不是实时操作系统,RT_Linux支持实时性,稳定性好,安全性好,不过价格不低。也有针对没有MMU设备移植的Clinux系统(最新的Linux2.6内核可配置MMU,支持无MMU的CPU,实际上已合并了Clinux)。搭建嵌入式开发环境,可以免费从Linux官网下载gcc编译器、gdb调试器等交叉开发工具。要求运行在Linux系统上,这对Windows用户来说可能是不易接受的。虽然通过Cygwin可以在Windows上交叉开发Linux程序,不过Cygwin首先需要配置并生成交叉工具链。在生成交叉编译器的过程中,可能会遇到多次错误,就需要根据给出的出错信息,进行相应文件的修改。并且在实践中发现,利用Cygwin编译嵌入式Linux应用程序和Red Hat Linux编译的运行效果不一致。虽然Linux下支持的图形化交叉调试工具有不少可用资源,但针对具体的硬件平台,需要的设置工作也不少。可见,嵌入式Linux还缺乏好用的集成开发环境,需要消耗一定人力用于搭建开发环境。2. VxWorksVxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),具有高可靠性、高实时性、高性能、组件丰富可裁剪的微内核结构,以及友好的用户开发环境。它以良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通信、军事演习、弹道制导、飞机导航等。在美国的F-16/FA-18战斗机、B-2隐形轰炸机和爱国者导弹上,甚至火星探测器上也用到了VxWorks。支持的CPU有M68K、PowerPC、ColdFire、In-tel X86、ARM、SPARC、MIPS等几十种。Tornado是WindRiver公司推出的集成开发环境,为用户提供支持C、C+语言的交叉编译器和类库。编译器包括GNU的C/C+编译器和Diab C/C+编译器。图形化的工程管理工具非常方便有效,可以方便地对VxWorks操作系统、组件及工程编译参数进行配置。核心工具包括VxSim仿真器、WindView软件逻辑分析仪、WindShell命令行执行工具、CrossWind集成调试器、Brow-ser系统对象检查工具。这些工具非常实用,方便开发调试。编辑器虽不受推崇,但好在可以设置外部编辑器。VxWorks性能优越,开发调试便利,有强大的技术支持,但是昂贵的价格让开发者望而却步。3. eCoseCos(embedded Configuration operating system)是由RedHat推出的小型实时操作系统。它诞生于1997年,最早是Cygnus公司开发,后被RedHat收购。它的特点是源码开放、免费、内核可灵活配置(配置项达200多项,甚至可以配置调度器的级别和最大任务个数,可以说是调整操作系统以适应应用程序),最低编译内核可小至10 KB的级别,适合用于微小型系统,比如增强型bootloader。eCos网络发行版支持的交叉开发主机有Windows和Linux两种版本,开发编译工具可支持GNU开源的开发工具链。eCos系统包含的开发工具有软件配置和构建工具,及基于GNU的编译器、汇编器、链接器、调试器和仿真器。支持的CPU有十几种,包括ARM、Hitachi H8300、Intelx86、MIPS、Matsushita AM3x、Motorola 68k、PowerPC、SuperH、SPARC和NEC V8xx,可以方便对不同平台的移植。eCos系统组件非常丰富,可加速开发。核心组件有硬件抽象层、实时内核、ITRON 3.0兼容的API、POSIX兼容的API、ISO C和数学库、从USB支持,TCP/IP网络协议栈、GDB调试支持、串口、以太网驱动等。4. C/OS-IIC/OS-II是Micrium公司的基于优先级抢占、多任务的小型实时操作系统。发布于1992年,最多可以管理255个任务,支持信号量及互斥信号量、消息队列和消息邮箱、固定大小内存块管理、时间/定时器管理等服务。内核代码量小巧,适合学习和研究。作为大学实时操作系统的典型教材,它具有广泛的用户群,已广泛应用于高安全性的设备。其源码99%符合MISRA C编码标准。支持的CPU有40多种,主要包括ARM、AVR、Niso、SE3208、M. Core、ColdFire、PowerPC、8051、80xC52、80x86、SPARClite、SH、Xscale、PIC18、PIC24、TMS320、TMS470、Z-80等。可以从官方网站获得45天的免费评估源码。虽然可获得源代码,但并不是免费的,版权费针对产品、产品线或CPU类型,而与具体产品数量无关。开发环境的建立往往借助具体CPU的开发环境,比如ARM用ADS,x86用Borland C+,AVR用AVR Studio。嵌入式软件操作系统选择要素嵌入式开发第一步需要确定嵌入式操作系统,对于嵌入式操作系统的选择通常从以下几个方面考虑:(1) 硬件平台的限制如果在已经设计好的硬件电路上移植嵌入式操作系统,首先需要确定某嵌入式操作系统是否支持该硬件平台,如CPU类型、内存大小、程序存储空间大小、MMU等因素。如果硬件电路设计留有弹性,或者是根据选择好的嵌入式操作系统进行硬件设计,就不是限制操作系统的选择,而是嵌入式操作系统限定了硬件电路的设计。(2) 性能参数要求首先需要从系统需求入手,转化为操作系统对应的技术指标,如是否要求硬实时、优先级抢占式调度、中断响应速度等。当然,选用的嵌入式操作系统满足性能要求,还需要应用程序满足相应的设计要求,才能使整个嵌入式系统满足性能参数要求。嵌入式操作系统根据不同平台可裁剪、可配置,并且在不同硬件平台运行的效果也差异悬殊。大部分技术参数可以从网络上找到。虽然测试的硬件平台不尽相同,但往往可以通过类比得到所设计电路的技术参数。如果有些参数无法确定,并且技术支持缺乏,就需要主动进行性能参数测试。(3) 开发、调试环境功能强大、容易搭建的集成开发/调试环境能节省项目人力投入,加速开发进度。这也是选择嵌入式操作系统时需要考虑的重要因素。大部分开发人员选择操作系统并不看操作系统特性,而是专注于集成开发环境的优劣,可见开发环境对嵌入式开发的重要性。对集成开发环境的评价,主要考虑:编辑、编译、调试界面是否友好和高度集成;支持的PC机操作系统;编译器通用性(容易掌握和移植),支持的编程语言,提供的库资源;是否支持版本控制(与Subversion或SourceSafe直接关联);调试环境的搭建(搭建是否便利,支持哪些连接方式,是否支持单步、断点跟踪调试);仿真平台(在硬件电路完成之前就可进行编程调试,方便单元测试);其他辅助调试、分析工具(如目标观察、系统分析、内存分析等)。(4) 移植操作系统的难易虽然嵌入式操作系统的一个重要作用是让程序设计工作量大大减少,将主要设计工作集中在应用程序开发,但是毕竟嵌入式系统是针对具体平台配置的,移植操作系统就是要对这些差异环节编程,实现硬件和操作系统的连接。从层次上看,有CPU内核移植、CPU的移植、最小系统组成的移植、外设驱动的移植。移植的难易主要是考察在代理商或技术支持所提供的模板基础上需要实现哪些中间层模块,有哪些现成的模块可利用。操作系统移植是否相应地有支持的调试平台,程序下载环境对操作系统的移植工作也有很大影响。(5) 应用模块支持应用模块支持也对嵌入式软件工作量有重要影响,如开发的嵌入式系统要求支持FTP文件传输协议,支持TFT LCD的图形界面显示,那么内核是否包含TCP/IP组件和网络文件系统、是否包含TFT LCD驱动模块就对进一步的开发工作有很大影响。尤其是一些编程调试工作量大的协议、驱动,能直接利用内核组件支持是最好的解决方案。除了以上几点,技术支持,可移植性支持,软件购置成本也是选择嵌入式操作系统要考虑的因素。COS是面向中小型应用的、其任务基于优先级的可剥夺嵌入式实时内核,其特点是小巧、性能稳定、可免费获得实现代码,所以我们选用COS操作系统COS-的移植分析所谓移植,就是使一个实时内核能在其他的微处理器或微控制器上运行。为了方便移植,大部分COS-是用C语言编写的,但与硬件有关的代码仍需要用汇便语言编写。COS-在设计之初已经考虑到可移植性,所以COS-的移植相对来说比较容易。要移植COS-,处理器必须满足以下要求:1)处理器的C编译器能产生可重入代码;可重入代码是指可以被多个任务同时调用而不被破坏的一段代码,这是实现多任务的基础。2)处理器支持中断,并且能产生定时中断(通常为10100 Hz);COS-是通过处理器的定时器实现中断的。3)用C语言就可以开/关中断。C语言可以通过宏定义进行开/关中断,在COS-中是OS-ENTER-CRITICAL()和OS-EXIT-CRITICAL()两个宏实现中断的。4)处理器能支持一定数量的数据存储硬件堆栈。5)处理器有将堆栈指针以及其他CPU寄存器的内容读出、并存储到堆栈或内存中去的指令根据处理器的不同,一个移植实例可能需要编写或改写50-300行的代码,最容易做的是选择修改CPU相同或类似的移植代码。OS-CPU.H、OS-CPU-A.ASM、OS-CPU-C.C是COS-中与处理器相关的三个文件,COS-的移植就是修改这三个文件。OS-CPU.H文件主要是定义数据类型,代码临界区开关中断方式,堆栈的生长方式,任务的切换向量以及时钟的发生频率等。C语言的short、int、long等数据类型与编译器相关不可移植,所以COS-采用定义的整型数据结构代替他们,既可移植,又很直观。绝大多数微处理器和微控制器的堆栈是从上往下递减的,但是也有一些处理器使用的是相反的方式,COS-需要知道堆栈的底端地址在哪里,从而得到堆栈的使用情况。在OS-CPU-C.C中COS-的移植要求用户编写10个简单的C函数,OSTaskStkInit(),OS-TaskCreateHook ( ), OSTaskDelHook ( ),OS-TaskSwHook ( ),OSTaskIdleHook ( ), OS-TaskStatHook ( ),OSTimeTickHook ( ),OS-InitHookBegin ( ),OSInitHookEnd ( ),OSTCBInitHook()。唯一必要的是OSTaskStkInit(),其他的9个函数必须声明。COS-的移植要求编写OS-CPU-A.ASM中的4个简单的汇编语言函数:OSStartHighRdy(),OSCtxSw(),OSIntCtxSw(),OSTickISR(),其中OSIntCtxSw() 较容易出错。如果编译器支持C语言中插入行汇编代码,就可以将所有与处理器相关的代码放到OS-CPU-C.C文件中,不再有单独的汇编语言文件。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 机械制造 > 工业自动化


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!