第3节 嵌入式实时操作系统
推荐给好友
打印
加入收藏
更新于2008-08-07 23:57:14

嵌入式实时操作系统
嵌入式操作系统就是支持嵌入式系统工作的OS,最主要的特点是实时性。
所谓实时系统是指一个优先级高的任务能够获得立即的、没有延迟的服务,它不需要等候任何其他服务,而且在获得CPU使用权后,可以不间断地执行到任务完毕除非有更高级地任务出现。
系统的正确性不仅取决与执行结果的正确性,更取决于产生结果的时间。
实时系统是指“一个能够在指定的或者确定的时间内,实现系统功能和对外部或内部、同步或异步事件作出响应的系统”。

1.微内核结构
嵌入式操作系统采用微内核结构,内核只提供基本的功能,比如:任务的调度、任务之间的通信与同步、内存管理、时钟管理等。其它的应用组件,比如网络功能、文件系统等均工作在用户态,以系统进程或函数调用的方式工作。因而系统都是可裁减的,用户可以根据自己的需要选用相应的组件。
一般来说,操作系统内核只提供基本的功能,如建立和管理进程、管理设备等。但是,一些桌面操作系统,如Windows等,将许多功能引入内核,操作系统的内核变得越来越大。内核变大使得占用的资源增多,剪裁起来很麻烦。

2.任务调度
任务的调度有三种方式:可抢占式调度、不可抢占式调度和时间片轮转调度。
不可抢占式调度:一个任务一旦获得CPU就独占CPU运行,除非由于某种原因,它决定放弃CPU的使用权;
可抢占式调度:基于任务优先级,当前正在运行的任务可以随时让位给优先级更高的处于就绪态的其它任务;
时间片轮转调度:当两个或两个以上任务有同样的优先级,不同任务轮转地使用CPU,直到系统分配的CPU时间片用完。
目前,大多数嵌入式操作系统对不同优先级的任务采用基于优先级的抢占式调度法,对相同优先级的任务则采用时间片轮转调度法。

3.硬实时和软实时
多数嵌入式系统对时间的要求较高,称之为实时系统。
有两种类型的实时系统:硬实时系统和软实时系统。
软实时系统并不要求限定某一任务必须在一定的时间内完成,只要求各任务运行得越快越好;
硬实时系统对系统响应时间有严格要求,一旦系统响应时间不能满足,就可能会引起系统崩溃或致命的错误,一般在工业控制中应用较多。

4.内存管理
一些桌面操作系统使用了虚拟存储器的概念。采用段式管理、页式管理、或段页式管理。这种存储管理方式占用了较多的系统资源。
但是,大多数嵌入式系统不使用虚存技术,对内存的访问是直接的,使用物理地址;而且,大多数嵌入式操作系统对内存空间没有保护,各个进程共享同一个运行空间。一个进程在执行前,系统必须为它分配足够的连续地址空间,然后全部载入主存储器。
由此可见,嵌入式系统的开发人员必须参与系统的内存管理,对软件中的一些内存操作必须格外小心。

5.内核加载方式
嵌入式操作系统内核可以在Flash上直接运行,也可以加载到内存中运行。
Flash的运行方式,是把内核的可执行映像烧写到Flash上,系统启动时从Flash的某个地址开始执行。这种方法实际上是很多嵌入式系统所采用的方法。
内核加载方式是把内核的压缩文件存放在Flash上,系统启动时读取压缩文件在内存里解压,然后开始执行。这种方式相对复杂一些,但是运行速度可能更快,因为RAM的存取速率要比Flash高。

启动程序BootLoader
PC机中,完成初始化处理器、硬件初始化等操作的是BIOS。
对于嵌入式系统,处于经济性、价格方面考虑,一般不配置BIOS,须自行编写程序完成相应的功能。即BootLoader程序。
系统加电复位后,从复位地址上执行指令,通常映射到这个指令的是固态存储器(ROM,flash)。
主要包括初始化硬件设备、建立内存空间映射图、启动操作系统、启动内存管理、任务管理、加载驱动程序等,最后执行应用程序或等待用户命令。
BootLoader依赖于系统的软硬件环境,因此建立一个通用的,标准的BootLoader比较困难。

常见的实时操作系统
国内RTOS:
女娲Hopen
桑夏2000
Delta OS
中软Linux2.0
Linux HardHat
Linux (Monta Vista)
Red Flag Linux(红旗Linux)
HBOS(“天堂之鸟”)
Suse
Red Hat
Embedix
LynxOS (LynuxWorks)

 VX Works (风河系统)
Windows CE (微软)
pSOSystem (风河系统)
VRTX (明导资讯)
Palm
PowerTV
AMX (KADAK)
C Executive
PSX (JMI)
VelOSity (Green Hills)
OS-9 (Microware Systems)
OSE (Enea OSE Systems)
QNX (QNX Software Sys)

嵌入式系统的分类
小规模嵌入式系统:
由8位或16位为控制器为核心,软件设计以“C”语言为主。自动售货机,洗衣机,智能玩具,键盘控制器,鼠标,CD驱动器,传真机,打印机,复印机等。
国外RTOS:
中等规模嵌入式系统:
由16位、32位、DSP、RISC计算机构成,软件构成上经常使用操作系统。 路由器,音响系统,银行ATM,SIM卡,移动电话,PDA。
复杂嵌入式系统:
硬软件较复杂,硬件上使用大规模处理器或可编程逻辑阵列,采用软硬件协同设计方法,软件上经常使用加密解密算法,离散傅立叶变换及逆变换算法,TCP/IP协议栈等。无线网络产品,实时多媒体处理系统,高速网络系统,计算机安全产品等。

嵌入式系统开发技术
计算机体系结构
数字电路设计及模拟电子技术
数据通信
控制工程
传感器以及测试技术
软件工程
汇编语言程序设计
C语言程序设计
RTOS编程技术

嵌入式系统开发工具
编译器:GNU编译器
调试工具:GNU调试工具
集成开发环境(IDE)
绘图入门工具
算法开发工具:UML/SDL工具库
网络/通信协议
配置管理工具
需求管理工具
DSP开发工具
器件驱动器开发工具
软硬件协同验证工具

嵌入式系统设计——设计目标
执行效果
——运行速度, 执行时间
功能性和用户接口
生产成本
能耗
其他需求 (物理尺寸、重量等)

嵌入式系统设计—系统设计一般流程


嵌入式系统——软硬件协同设计


嵌入式系统设计


硬件构件设计流程



1.系统需求分析
确定设计任务和设计目标,提练设计规格说明书,作为设计指导和验收的标准。系统需求一般包括功能性需求和非功能性需求两方面。功能性需求是系统的基本功能,如输入输出信号、操作方式等;非功能性需求包括系统性能、成本、功耗、体积、重量等因素。
2.体系结构设计
描述系统如何实现所述的功能性和非功能性需求,包括对硬件、软件和执行装置的功能划分以及系统的软件、硬件选型等。一个好的体系结构是设计成功与否的关键。
3.硬件/软件设计(硬件、软件、执行装置并行设计)
基于体系结构,对系统的软件、硬件进行详细设计。为了缩短产品开发周期,设计往往是并行的。嵌入式系统设计的大部分工作集中在软件设计上,采用面向对象技术、软件组件技术、模块化设计是现代软件工程经常采用的方法。
4.系统集成
把系统的软件、硬件和执行装置集成在一起,进行调试,发现并改进单元设计过程中的错误。
5.系统测试
对设计好的系统进行测试,检查是否满足规格说明书中给定的功能要求。
针对系统的不同复杂程度,有不同的系统设计方法,比如瀑布设计方法、自顶向下的设计方法、自下向上的设计方法、螺旋设计方法、逐步细化设计方法、并行设计方法等。可根据实际情况和熟悉程度灵活选用。

验收阶段提交的文档样例
技术文件目录
技术任务书
技术方案报告
产品标准(草案)
技术条件
可靠性技术设计
技术设计说明书
试产总结
测试报告

硬件/软件开发工具主要商家
1.实时在线仿真系统ICE
(In-Circuit Emulator)(http://www.nohau.com)
2.高级语言编译器(Compiler Tools)(http://www.tasking.com)。提供高档嵌入式微处理器编译器的公司有:Microsoft(x86)、Borland(x86)、Microtec(68k、PowerPC、x86、i960)、Intel(i960)、Diab(PowerPC、68K)、GreenHill(68k、PowerPC、MIPS、X86)等。嵌入式Java 将会在未来两年在高档嵌入式微处理器中得到应用。
3.源程序模拟器(Simulator)(http://www.chiptools.com;www.keil.com)
嵌入式系统开发工具市场:
国外产品占领市场90%以上,国内产品占领市场很小,但正在兴起,很快进入市场。
硬件开发环境

<<上一节 下一节>>

相关链接


 
关于我们 | 诚邀加盟 | 客户服务 | 相关法律 | 网站地图 | 友情链接 | 服务信箱:service@eefocus.com
© 2006 与非门科技信息咨询(北京)有限公司 All Rights Reserved.