1、ReWorks 嵌入式实时操作系统和 ReDe 嵌入式软件开发环境1 引言嵌入式系统与软件是发展先进制造业和现代服务业,满足高端数字化应用对网络自适应、服务个性化、功能综合化以及功能复杂化等需求的重要技术保障。随着嵌入式微处理器、通信总线、存储器和嵌入式计算机系统结构的技术发展,嵌入式硬件的价格不断降低,计算能力、通信能力和存储能力不断提高,这为嵌入式软件的发展提供了更大的空间。另一方面,嵌入式应用层面的信息化、智能化、网络化需求,促使传统的嵌入式软件向基于嵌入式实时操作系统的、更具功能扩展能力和价值创造能力的嵌入式软件发展。在轨道交通、船舶电子、信息家电等领域,嵌入式技术的应用已经成为提高产
2、品竞争力的重要手段。ReWorks 是华东计算技术研究所自主研制的嵌入式实时操作系统, ReDe 是 为 ReWorks 提供的嵌入式软件开 发环境,该产品已广泛应用于轨道交通、船舶电子、信息家电、工 业 控制和国防领域。本文从技术角度对 ReWorks/ReDe 的结构、功能和特点作简要介绍。2 ReWorks 嵌入式实时操作系统嵌入式实时操作系统位于嵌入式硬件和嵌入式应用软件之间,为上层应用提供基础服务,是信息家电、信息终端等嵌入式应用产品的核心和灵魂,应用系统的功能实现、实时性能、安全可靠在很大程度上依赖于操作系统的支持。ReWorks/ReDe 采取宿主/目标机的体系结构,如图 1 所
3、示:图 1 ReWorks/ReDe 的宿主/目标 机体系结构(1)系统结构ReWorks 采用微内核及组件技术,能根据应用需要对操作系统内核进行配置、裁剪、扩 展与定制,具 备较强的伸 缩能力。其中,微内核提供强实时调度、基本内存管理、时钟管理、中断管理等功能,核心组件提供定时器、区域、分区、信号、事件、信号量、消息等可裁剪功能。这种微内核、层次化组件结构决定了其固有的模块化特性,为提高系统的升级维护能力、目标处理环境适应能力以及系统的扩展能力等提供了基础保障。(2)ReWorks 的强实时性宿主开发环境 ReDe 3Windows/LinuxJTAG目标运行环境ReWorks 3.0x86
4、/ARM/PPC核心配置BDM运行代码网络串口目标代理交叉编译编辑器系统仿真源代码ReWorks库C/C+库目标代码工程管理工具远程调试代码下载目标监控固化工具第三方软件工具集成图形开发工具目标运行环境DSPDSP应用CPCI共享内存网络ReWorks 提供实时多任务管理机制,支持基于优先级的可抢占调度、时间片 轮转调度以及速率单调算法等任务调度策略和技术。对于可抢占调度,高优先级的任务可随时打断低优先级任务的运行,抢占点不 仅包括应用程序,也包括大部分内核程序,见图 2。同时针对关键任务,允许任务的排他性运行,一旦其进入运行状态,其它优先级更高的任务也不能抢占调度,直至该任务被阻塞或运行完成
5、。这种调度模式可以最大限度地保证关键任务的截止时间得到满足。图 2 内核可抢占的优先级调度对实时系统中周期性任务,ReWorks 实现了单调速率调度算法,它具备周期性任务的可调度性分析能力,保证系统即使在短暂的超载情况下,不会超过各实时任务的截止时间,确保系统行为的可预见性。中断响应时间是系统实时性的关键指标。ReWorks 采用了核心可抢占设计,并提供中断处理和任务的关联机制,使主体的中断处理任务可运行于用户空间,提高了系统的可靠性,同时减少中断嵌套层次以及系统的临界区,缩短中断延迟时间。(3)ReWorks 的标准化接口开放标准是实现软件复用和互操作的一种重要方法。ReWorks 提低优先
6、级任务内核服务高优先级任务内核服务低优先级任务时间供符合 POSIX 实时扩展标准的编程接口,从而大大提高了源代码级的软件可移植性。为 ReWorks 操作系统编写的程序,可以在任何其它的 POSIX 操作系统上编译执行,反之亦然。图 3 ReWorks 的源代码级软件可移植性另一方面,ReWorks 通过对市场上应用较多的美国风河公司VxWorks 操作系统调用接口及相关宏定义的封装,在应用层上实现了 VxWorks 源代码级兼容。同时参照 VxWorks 驱动框架,实现了VxWorks 驱动 的二进制兼容。(4)ReWorks 的可靠性ReWorks 采取存储域管理技术来提高系统的可靠性。
7、ReWorks 存储域管理建立在硬件 MMU 基础之上,通过分页技术实现内存的保护映射。同时,通过对 MMU 的抽象,使接口实现与具体的硬件特性无关,保证 ReWorks 能够顺利移植到其他硬件平台,包括对不具备 MMU 能力的硬件平台的支持。此外,为保障实时性,ReWorks 存储域管理采用了存储域物理空间预分配技术,避免缺页中断,并且页表以写保护模式存储在核心域中,从而在页表得到安全保障的情况下,减小了存储域切换延迟。基于存储域保护,ReWorks 通过在栈边界设置隔离墙,实现了任务栈的溢出监测,当栈溢出时将该任务隔离,保证域内其他任务的正ReWorks 其他POSIX操作系统应用程序PO
8、SIX API POSIX API常运行。3 ReDe 嵌入式 软件开 发环境嵌入式系统体积较小、资源有限,因此需要在通用的宿主平台上建立一个嵌入式软件开发环境,旨在为嵌入式软件的开发提供从设计、编程、调试 、仿真运行到测试的全过程支持,保证应用系统的开发效率和软件质量。在开发完成后,目标代码被加载到嵌入式目标环境上进一步调试。最后,才固化到硬件中完成嵌入式产品。由于这样的交叉开发模式,大多数嵌入式操作系统都配有宿主机端的开发环境。ReDe 是为 ReWorks 提供的嵌入式软件开发环境,其基本功能包括系统配置、源程序编辑、交叉编译、 连接、 远程调试、系统仿真、目标代码下载和固化等。随着嵌入
9、式开发人员对第三方工具的利用越来越普遍,要求嵌入式软件开发环境具有良好的可扩展性。ReDe3 以 Eclipse 开放平台架构为基础, 结合嵌入式软件开发的特点,实现了 Eclipse 的定制改造和工具链扩展,支持与其他商用 CASE 工具无 缝集成,具有开放性、跨平台、一体化等特点。ReDe3 的体系结构如图 4 所示:R e D e 运行框架 ( B u i l d o n E c l i p s e a n d C D T F r a m e w o r k )目标机代理R e W o r k sf o rX 8 6R e W o r k sf o rA R MR e W o r k s
10、f o rM I P SO t h e r O Sf o rO t h e r C P U分析与评估工具软件开发与运行支持R e W o r k sf o rP P CR e W o r k sf o rR e S i m嵌入式软件装配与集成部署环境目标机管理软件开发基础设施远程管理协议B S P 开发 驱动开发 固化与引导图形开发实时建模团队开发系统配置与裁剪 动态加卸载编辑器编译器 调试器支持库 B u i l d 管理工程管理测试S h e l l仿真器 运行监控目标机文件管理通讯管理目标机服务器领域应用定制与支持船舶电子信息家电 工业控制图 4 ReDe3 体系结构(1)基于模型的软件
11、设计由于嵌入式软件规模和复杂度不断提高,嵌入式软件的开发已进入自动化、模型化阶段。ReDe3 集成了第三方 CASE 工具 Rhapsody,可使用 UML 语言建立软件模型,自动生成 C/C+等语言的源代码,提供完整的系统流程图、标准化的软件说明文档,并对系统功能进行模拟仿真。Rhapsody 是一个基于 UML 支持实时嵌入式系统全过程面向对象开发的 CASE 工具,它借助内置的 OXF 框架实现从系统的分析、模型设计、代码自动生成到测试用例生成的开发过程自动化。OXF 框架是面向对象和跨嵌入式操作系统平台的,ReDe3 提供了基于ReWorks 操作系统的 OXF 接口实现,使得 ReD
12、e3 可以方便地将通过 Rhapsody 设计的模型转换成 ReWorks 的应用程序代码,进而为用户设计 ReWorks 应用提供了实时设计建模手段,并切实提高开发效率和可维护性。(2)系统配置ReDe3 针对 ReWorks 高度可裁剪和可配置的特性,采用 XML 对可配置组件进行可视化描述,支持裁剪配置关联感知,实现系统配置与资源管理。用户可根据应用需求对操作系统核心及其组件进行细粒度配置,使系统达到最优化,适应从深嵌入系统到复杂的高端实时系统的环境特点。(3)系统仿真为实现嵌入式系统软硬件并行设计开发,提高开发效率,ReDe3提供了指令级仿真器 ReSim,支持目标机的指令、外部设备接
13、口的仿真,确保在宿主机上开发的嵌入式软件能够适应目标机硬件环境。ReSim 使开 发人员在目 标硬件可供使用之前,就能进行应用程序的开发、 调试和 测试,减 轻 嵌入式应用软件开发对目标硬件平台的依赖性,从而缩短产品开发周期,降低产品开发成本。(4)图形应用开发随着嵌入式技术的发展和应用领域的拓展,可视化的图形界面已成为改善用户使用体验、提高产品易用性的重要手段,ReWorks 实现的轻量级、高性能图形系统对数字电视电子节目指南、嵌入式浏览器、嵌入式地理信息系统等复杂图形应用提供了良好的支持。ReDe3/ReUI 为应用开发提供了“所见即所得 ”的快速图形开发工具及定制性强、稳定可靠的图形库。
14、ReUI 提供丰富的中文化图形控件和绘图函数,支持可扩展的窗口管理及对话框、按钮、文本编辑框、 滚动条等控件,支持高效的点、线、区域、图形、 图像等 处理。针对领域应用, ReUI 提供复用性强的实用控件,如数字仪表、图表分析、 轨迹标绘 、导航指示等。ReUI 采用基于 FrameBuffer 技术的高效图形处理引擎,支持高分辨率图形显示(32 位真彩色)。同时,ReUI 以共享库方式提供窗口对象控件,具有良好的可裁剪性以及可扩充性,用户可以根据应用需求选择窗口部件或者绘图函数,也可以根据需要自行扩充控件。在中文处理方面,ReUI 提供轻型汉字 GUI 控件,支持GB2312/Unicode
15、 编码显 示处理,支持多种点 阵、矢量字库。同 时,ReUI 提供标 准的中英文 输入模块接口,可挂接拼音、五笔、手写 识别等多种中英文输入法。在开发过程中,ReUI 支持 GUI 控件拖拉操作,并保证 GUI 元素在开发时与运行时显示风格完全一致,达到了“ 所见即所得” 的效果。同时, ReUI 具有良好的兼容性,通过 ReUI 生成的代码能够方便地移植到不同的目标系统上。4 结束语ReWorks 操作系统实现了完善的操作系统功能,提供工业标准的 POSIX 实时扩展接口和市场广泛使用的 VxWorks 兼容接口。同时,ReWorks 完全自主开发 ,拥有自主核心技术,可以针对应用的特殊需要进行定制和扩展。因此,采用 ReWorks 操作系统,可以提高相关产业产品的研发效率,增加产品的功能密度,提高应用层面的自主创新能力。