1 引言 嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件。它是嵌入式系统(包括硬、软件系统)极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器Browser等。嵌入式操作系统具有通用操作系统的基本特点,如能够有效管理越来越复杂的系统资源;能够把硬件虚拟化,使得开发人员从繁忙的驱动程序移植和维护中解脱出来;能够提供库函数、标准设备驱动程序以及工具集等。与通用操作系统相比较,嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。 eCos(Embedded Configurable Operating System,嵌入式可配置操作系统)是一种针对16位、32位和64位处理器的可移植嵌入式实时操作系统。由于其源代码是公开的,因而有越来越多的设计人员开始关注eCos操作系统。 eCos最大的特点是配置灵活,提供了大范围的可选项供开发人员配置操作系统,以最好地匹配应用的需求,这样就变成了调整操作系统来适应应用。典型的配置选项包括调度器的类型和任务优先级别数目等。当前,eCos具有200多个配置选项。eCos支持很多种平台,包括SPARC、ARM、I386、Powerpc、MIPS等等。针对新的体系结构,只需要移植eCos的HAL层,上层应用基本上可以不必或稍加改动。适合于用在一些商业级或工业级的嵌入式系统,如一些消费电子、汽车领域等等。相对于嵌入式Linux来说,eCos有配置灵活和节省资源的优势。它的另一个优点是使用多任务抢占机制,具有最小的中断延迟,支持嵌入式系统所需的所有同步原语(互斥、条件变量、计数型信号量、邮箱和事件标志),并拥有灵活的调度策略和中断处理机制,因而具有良好的实时性。嵌入式Linux和eCos操作系统相比,eCos更适合于处理实时信号的设备,如移动通信、WLAN等通信设备的开发。 eCos内核调度机制如下表所示:
调度方式 | 调度方法 | 时间片调度 | 优先级数/个 | 任务数量/个 | 位图 | 优先级抢占式 | 无 | 32 | 32 | 多级队列 | 优先级抢占式 同级时间片调度 | 有 | 32 | 无限 | 2 S698系列处理器芯片简介 S698系列处理器芯片是国内拥有自主知识产权的高端芯片,在同类产品中处于国际先进水平,它的研发成功将打破国外对我国在航空航天、电子、船舶等领域的相关技术垄断。欧比特(珠海)软件工程有限公司是我国为数不多的能够设计、生产、研制嵌入式操作系统、专用芯片及其高端计算机系统的高科技企业。这一系列处理器广泛地应用于我国工业控制、电子信息以及特种行业等领域。S698-ECR处理器是欧比特(珠海)软件工程有限公司生产的S698系列的其中一款处理器。S698-ECR是高性能的、SPARC V8架构的、32-bit RISC嵌入式微处理器,采用0.18 µm CMOS工艺制造,QFP160封装。 2.1 S698-ECR处理器的特点如下: 1存储器控制器: PROM, SRAM接口 片选信号生成器 等待周期生成器 存储器写保护 2. 外设: 4个24-bit定时器 1个24-bit看门狗定时器 80-bit GPI口 4个UART控制器 PS/2控制器 IIC总线控制器 SPI总线控制器 磁卡控制器 3个智能卡控制器 3. 集成调试支持单元(DSU : Debug Support Unit)和数据通讯链路 ( DCL : Data Communication Link); 4. 集成64K字节的RAM,带有后备电源; 5. 优化的功耗设计, 内核功耗: < 4 mW/Mhz; 6. 先进的多时钟机制和时钟倍频机制; 7. 0.18μCMOS工艺生产 8. 性能 Ps/33 MFlops (double precision) @ 166 MHz 0.8 Dhrystone MIPS/MHZ 9. 级别 : 商业级 10.封装: QFP160 2.2 S698-ECR功能结构图 本文将以S698-ECR为例介绍eCos2.0在S698系列处理器上的移植。使开发人员对eCos的移植过程有一个全局的了解。利用eCos工具配置编译,使其在S698-ECR的开发板上运行。 3 eCos底层移植的基础知识 eCos文件目录结构图如下:
表:ecos目录结构说明
目录 | 说明 | compat | 用于兼容POSIX(IEEE1003.1)和uITRON3.0的软件包 | cygmon | 调试监视器cygmon的软件包 | devs | 设备驱动程序组件的包,例如串口、以太网等。 | error | 公共的错误和状态包,在不同的包中为错误和状态的报告提供公共的接口 | fs | 包含ROM文件系统和RAM文件系统 | hal | 目标硬件平台的HAL包 | infa | 包含公共类型、宏、代码跟踪、断言和启动选项的eCos基础包 | io | 独立于硬件设备的公共I/O系统支持包 | isoinfra | 实现ISO C库(如stdlib 、stdio)和POSIX的包 | kernel | eCos内核中核心功能的包,包括主,调试器、信号量、线程 | language | ISO C库和数学库 | net | 网络支持包 | redboot | 调试用的Redboot ROM监视器 | services | 包括动态内存分配、压缩和解压缩的支持库 | eCos系统的主要组成部分如下图所示。
eCos的核心组件 实时嵌入操作系统包含一些标准的功能,例如中断和异常处理,线程同步机制,调度器和驱动程序等,这些也构成了eCos的核心组件。具体包括: 硬件抽象层(HAL):用来向上层提供统一的硬件视图,屏蔽硬件的差异 内核: 包括异常处理,线程同步支持,调度器,定时器,计数器 ISO C和数学库:标准C函数库 设备驱动程序:标准串口,以太网卡,Flash ROM等 GDB支持:使得目标机上可以和主机通讯进行交叉调试 由上图可见,硬件抽象层是eCos嵌入式操作系统和硬件直接接触的基本层,其将系统内核和具体的硬件平台彻底隔离开, 实现了系统内核与硬件的无关性,这就是操作系统具有良好可移植性的体现。因此,对于开发人员来说,移植操作系统真正的意义和工作在于移植操作系统的硬件抽象层。 硬件抽象层主要包括三大模块——体系结构抽象层(Architecture HAL)、变体抽象层(Variant HAL)和平台抽象层(Platform HAL)。体系结构抽象层主要是指eCos所支持的具有不同体系结构的处理器系列,如SPARC系列、arm系列等等。变体抽象层指的是处理器系列中某款处理器在Cache、MMU和FPU等方面所具有的特殊性。平台抽象层则是对当前系统硬件平台的抽象,包括了平台的启动、芯片选择与配置、定时设备、I/O寄存器访问以及中断寄存器等等。平台抽象层代码的编写是eCos移植工作的重点。硬件抽象层HAL是对处理器结构和系统硬件平台进行抽象,当要在一个新的目标平台上移植eCos时,只需要对底层的硬件抽象层进行修改。
在图形化窗口中设置如下: a)菜单"Build"->"Repsitory"设为/root/ecos/ecos-rep(ecos-rep为ecos的源代码包); b)菜单"Tools"->"path"->"Build Tools"设为 /opt/sparc-elf-3.4.4/bin(sparc-elf工具链的位置); c) 所有选项默认设置。 设置完毕后,保存 d) 菜单"Build"->"Generate Build Tree" 生成makefile等文件; e) 菜单"Build"->"library" 生成eCos二进制文件,在/root/ecos/生成ecos_install目录。 到此为止,移植工作结束。生成ecos_install目录内是eCos的头文件和链接文件,应用程序可以编译链接这些文件生成可运行应用程序。 5 结束语 本文主要研究了ecos操作系统的内核结构,并研究其在S698系列处理器的移植过程。eCos操作系统已在S698系列处理器上经过实际测试,系统稳定可靠,可运行多任务应用程序。所具体讨论的移植过程有助于开发人员了解eCos操作系统的运行原理,方便开发人员在S698系列处理器上用eCos进行军用民用领域的项目开发。 参考文献: [1] S698P-SOC eCos Reference Manual, 欧比特(珠海)软件工程有限公司, 2006 [2] eCos使用说明, 欧比特(珠海)软件工程有限公司, 2006 [3] eCos操作系统针对并行S698P-SOC的启动初始化过程, 欧比特(珠海)软件工程有限公司,2006 [4] S698-ECR用户手册, 欧比特(珠海)软件工程有限公司, 2004 [5] 嵌入式可配置实时操作系统eCos软件开发(Embedded Software Development with eCos),北京航空航天大学出版社,2006 关键字:ecos,eCos移植,SPARC V8 转载地址:http://www.eaw.com.cn/news/newsdisplay/article/21554 |