eCos在XScale IOP348上的移植*

2010-08-11 05:27滕至阳苗元亮
舰船电子工程 2010年7期
关键词:变体体系结构嵌入式

卢 飞 滕至阳 苗元亮

(东南大学计算机科学与工程学院 南京 210000)

1 引言

嵌入式实时操作系统的使用,可以增强系统性能,确保系统的稳定性和可靠性,便于开发和维护应用程序,因此越来越广泛的被应用于各种嵌入式系统。eCos(Embedded Configurable Operating System)是一种开源的、免版税的、实时的嵌入式操作系统,适合于深度嵌入式应用。与其它嵌入式实时操作系统不同,eCos具有独特的可配置能力和配置机制。同时eCos具有良好的开放性、兼容性、稳定性、可扩展性和可移植性,而且支持ARM、MIPs、M68K 、PowerPC 、ColdFire、v850、x86 等众多微处理器[1]。因此eCos日益受到嵌入式设计人员的关注,正在越来越多应用于嵌入式产品中。

IOP348是intel公司的一款基于XScale的io处理器,集成了双核XScale处理器,最高频率达到了1.2GHz,同时支持PCI-X和PCI-E(最高支持到PCI-E x8),还集成了 8个 SAS 3Gb/s接口[8~9]。目前主要应用在RAID控制卡,iSCSI控制器等数据存储设备中。本文利用eCos的可配置性,分析eCos移植过程中的一般步骤,将eCos应用到基于IOP348的开发板iq81348上。

2 eCos体系结构及特点

eCos使用多任务抢占机制,具有中断延迟小,支持同优先级调度,支持嵌入式系统所需的所有同步原语,拥有灵活的调度策略(包括 bitmap和Multi-level queue)和中断处理机制。eCos提供了完备的嵌入式开发功能,包括设备驱动程序、内存管理、例外处理、标准库函数、基本的文件系统、网络栈等。

eCos采用模块化的设计,将不同功能的软件分为不同的组件,这些组件具有可重用性,分别位于系统的不同层次,这种分层结构使eCos具有良好的可配置性、可移植性、可兼容性和可扩展性。eCos的层次结构如图l所示。

图 1 eCos层次结构

在ecos体系中最底层的是硬件抽象层HAL(Hardware Abstraction Level),它负责对目标系统硬件平台进行操作和控制,包括硬件初始化,中断和异常的处理。HAL屏蔽了底层硬件的差异,为上层提供统一的接口。在进行eCos的移植中,关键要对HAL进行修改,即可将整个ecos系统移植到新的硬件平台上。HAL根据所描述的硬件对象的不同可以分为体系结构抽象层(Architecture HAL)、变体抽象层(Variant HAL)与平台抽象层(Platform HAL),因此HAL的移植就可以分为三种不同的类型:体系结构抽象层移植,变体抽象层移植和平台抽象层移植[2,4~5]。

体系结构抽象层移植针对的是HAL的体系结构层。eCos支持的每种处理器系列都被看成是一种不同的体系结构。在/eCOS/packages/hal目录下每一种体系结构都有对应的子目录,例如/eCOS/packages/hal/arm对应于ARM体系结构。每个子目录中包含了用于支持特定处理器的平台抽象层和变体抽象层子目录,例如/eCOS/packages/hal/arm目录下包含e7t子目录与lpc2xxx子目录,e7t包含的代码用于支持arm e7t这个平台的初始化,lpc2xxx包含的代码用于支持LPC2000处理器系列的不同变体(包括 lpc2106,lpc2100等)。体系抽象层移植可以选择相近的HAL作为模板。

变体抽象层移植针对的是HAL的变体层,该子层可支持特定CPU与同类体系结构的普通CPU之间的差异。变体抽象层移植通过对中断、高速缓存及其他特性的重定义来覆盖体系结构抽象层中的默认实现。

平台抽象层移植针对的是HAL平台层,该子层次对应于一系列的硬件,包括选择的处理器或其变体。平台抽象层移植时可采用eCos支持的且与新硬件平台相近的平台HAL作为模板,对内存布局等初始化代码进行修改。

硬件抽象层的这3个子模块之间没有很明显的界限。对于不同的目标平台,这种区分具有一定的模糊性。一般来说,目标系统应该将体系结构抽象层、变体抽象层和平台抽象层分别使用不同的包来加以实现。

eCos的这种分层结构使整个软件结构清晰,有良好的可维护性和可移植性。

3 iq81348硬件平台

硬件平台以IOP348处理器为核心,外部器件包括8MB NOR Flash(StrataFlash·28F640J3C120B)、512MB DDRII内存 、10针 JTAG 接口、82545GM 千兆以太网卡芯片、Rs232串口、PCI-E slot、PCI-X edge等。图2是硬件平台的结构框图[8]。

本文以此硬件平台为基础,介绍eCos的移植工作。

图2 IOP348硬件平台框图

4 eCos移植及在IOP348上的应用

4.1 宿主机环境搭建

本文所涉及的eCos移植是在Windows XP环境下实现的,需要用到Cygwin、GNU本地开发工具、ARM平台交叉开发工具以及eCos配置工具[3]。本文使用了Macraigor公司提供cygwin环境和xscale toolchain安装包。

4.2 IOP348变体抽象层与平台抽象层的移植

Intel IOP348是基于Xscale架构的一款CPU,其体系结构抽象层对应于XScale,在eCos中已经有相关移植,所以eCos在IOP348上的移植主要包括变体抽象层和平台抽象层的移植。

IOP348隶属 Intel IOP34X系列,与之前的IOP310系列相似,可以把IOP310的HAL作为模板,实现变体抽象层的移植。

首先在 hal/arm/xscale/目录下新建文件夹IOP34X,然后按照hal/arm/xscale/IOP310目录下的文件结构创建文件,文件名对应IOP348。具体如下:

1)创建配置描述文件 hal_arm_xscale_iop34x.cdl,使其对IOP34X系列CPU所有组件特性进行登记。修改内容主要包括:cdl_package命令,主要用来在eCos.db文件中加入新平台相应的包,改变新加入的包在eCos配置工具中的描述和定义,同时改变包编译时依赖的文件;cdl_component命令,它用来调整启动模式和时钟设置;cdl_option命令,主要用来调整其他设置选项。

2)创建文件hal_iop34x.h。这个文件中主要是定义CPU相关寄存器地址[8~9]及一些基础宏操作,包括移位操作、寄存器读写等。根据IOP34X系列CPU设置即可。

3)创建文件hal_var_ints.h。这个文件中主要是定义CPU的中断编号以及中断相关的常量,例如中断ISR个数等[6~7,9]。

4)var_io.h文件主要是针对pci设备的读写操作,提供pci设备读写的函数接口以及部分底层pci操作的宏定义实现。这部分内容也可以直接放到平台抽象层处理。

5)创建文件iop34x_misc.c和iop34x_pci.c。iop34x_misc.c文件主要是硬件初始化函数及部分硬件初始化宏定义。iop34x_pci.c文件主要是针对pci设备的操作,由于IOP34X系列使用了PCIX和PCI-E,需要对cyg_hal_plf_pci_init函数进行较大的改动[9]。

变体抽象层到此就完成了。平台抽象测移植与变体抽象层类似,可以以平台iq80310作为模板移植,根据外围芯片不同更改相应的驱动程序。在平台抽象层移植过程中需要注意以下两点:

1)由于 iq81348支持 SAS控制器,需要在NOR Flash中预留出前2MB空间作为SAS Firmware,因此需要修改eCos的启动方式,使用ROMRAM方式(即把 eCos镜像从 Flash中拷贝到RAM中运行),同时留出2MB的偏移量。

2)FLASH起始地址是0xF0000000,大小为0x00800000,SDRAM 起始地址为0x00000000,大小为0x20000000,在内存布局配置文件mlt_arm_xscale_iq8134x_romram.h和mlt_arm_xscale_iq8134x_romram.ldi文件中需要手动修改,并且需要考虑偏移量的问题。

最后需要对eCos.db文件进行更新,加入移植内容。图3是配置工具中加入iq81348成功后的模板选择界面,图4是加载iq81348成功后的eCos配置界面。

图3 eCos配置工具中iq81348的模板

图4 加载iq81348后eCos配置工具界面

4.3 生成新平台的eCos镜像及应用程序

在完成上述文件的修改以后,可以使用eCos的配置工具重新进行配置,选择需要的packages,执行build命令完成eCos镜像的编译,生成内核库文件,链接脚本以及头文件。

5 结语

嵌入式可配置操作系统eCos与其他嵌入式实时操作系统相比,有着更好的可配置性和可移植性,这使eCos在嵌入式系统的应用日益广泛。本文将eCos成功的应用在IOP348为核心的硬件平台上,提供了eCos移植的具体步骤,对IOP34X系列的其他平台移植也有借鉴意义,同时也为iq81348的后续开发提供了一个良好的平台。

[1]eCosCentric Ltd.eCos Referance Manual[EB/OL].http://ecos.sourceware.org/docs-latest/pdf/ecos-ref.pdf,2003

[2]蒋句平.嵌入式可配置实时操作系统eCos开发与应用[M].北京:机械工业出版社,2004

[3]Anon.Building a Tool Chain for Use with eCos[EB/OL].http://ecos.sourceware.org,2007

[4]周永红,于玲玲.如何构建eCos嵌入式系统[J].单片机与嵌入式系统应用,2005(11):79~81

[5]王京起,黄健,沈中杰,等.嵌入式可配置实时操作系统eCos技术及实现机制[M].北京:电子工业出版社,2005

[6]Intel Ltd.3rd Generation Intel Xscale Microarchitecture Developer's Manual[EB/OL].http://download.intel.com/design/intelxscale/31628302.Pdf,2007

[7]Intel Ltd.Intel XScale·Core Developer's Manual[EB/OL].http://download.intel.com/design/intelxscale/27347302.Pdf,2004

[8]Intel Ltd.Intel·81348 I/O Processor Design Guide[EB/OL].http://download.intel.com/design/iio/docs/31505302.Pdf,2007

[9]Intel Ltd.Intel·81348 I/O Processor Developer's Manual[EB/OL].http://download.intel.com/design/iio/docs/31503602.pdf,2007

猜你喜欢
变体体系结构嵌入式
基于DDPG算法的变体飞行器自主变形决策
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
足球机器人并行行为组合控制体系结构分析
TS系列红外传感器在嵌入式控制系统中的应用
嵌入式PLC的设计与研究
注入间接线索的设计模式变体分类检测
基于字词联合的变体词规范化研究①
嵌入式单片机在电机控制系统中的应用探讨
非仿射参数依赖LPV模型的变体飞行器H∞控制
作战体系结构稳定性突变分析