嵌入式操作系统eCos在S698系列处理器上的移植

作者:颜军 许学艺    时间:2008-10-13    来源:珠海欧比特控制工程股份有限公司 
 
      

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功能结构图

嵌入式操作系统eCos在S698系列处理器上的移植_第1张图片
本文将以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

你可能感兴趣的:(嵌入式操作系统eCos在S698系列处理器上的移植)