基于P2010的ReWorks操作系统应用及分析

2015-12-23 09:06雷鹏生盛义
移动通信 2015年12期
关键词:嵌入式操作系统网络协议核心网

雷鹏,生盛义

(1.中国电子科技集团公司第七研究所,广东 广州 510310;2.中国人民解放军第二炮兵驻广州军事代表室,广东 广州 510310)

基于P2010的ReWorks操作系统应用及分析

雷鹏1,生盛义2

(1.中国电子科技集团公司第七研究所,广东 广州 510310;2.中国人民解放军第二炮兵驻广州军事代表室,广东 广州 510310)

随着国家信息安全意识的提高和嵌入式操作系统国产化平台在多种行业的推进,针对某核心网交换设备及使用的FreeScale P2010处理器的特性,深入分析ReWorks操作系统的BSP开发、图形支持、VxWorks兼容层设计及应用移植的方法和步骤,并对ReWorks和VxWorks操作系统进行对比分析,得出ReWorks操作系统不仅基本实现了核心网交换设备的功能,还大大提升了软件的安全性和自主可控能力。

ReWorks 嵌入式操作系统 FreeScale P2010 板级支持包

1 引言

现代化的战争已经从机械化军事形态转变为信息化军事形态,信息已经成为现代战争的制高点,谁掌握了信息,谁就有了现代战争的发言权。而信息安全更是提升为信息化军事的重中之重,只有发挥国产化软硬件的“安全、可靠、可控”特点,使其在信息安全的源头上发挥顶梁柱作用,才能在核心操作系统和芯片上摆脱西方发达国家的控制,提高设备的安全性和保密性,最终主宰自己在现代军事的主动权。

目前主流的嵌入式操作系统为Wind River System公司开发的VxWorks。但是,正如Microsoft控制的Windows XP操作系统一样,面临着可能“被终止”、“被渗入”和“被后门”的信息安全危险。因此,嵌入式操作系统的国产化及应用研究也被提升到关系国家安全的地位。

随着核心网的快速发展,其安全性和重要性逐步提高,其中交换设备的自主可控也显得尤为重要。通过对现役的某核心网的交换设备进行嵌入式操作系统的国产化的探索性研究和应用验证,积累对主流硬件平台的适应性开发经验,最终提升自主可控平台的装备适应性和应用水平,满足国产关键软硬件对新一代装备发展的需求。

2 系统设计及软硬件环境

2.1 产品应用分析

核心网交换设备采用飞思卡尔(FreeScale)的P2010处理器和VxWorks6.8操作系统,主要功能需求如下:

(1)支持全中文人机界面;

(2)主要实现多网系混合组网功能;

(3)支持多类终端设备的随遇接入;

(4)支持系统动态路由和基于全IP的数据、话音业务交换;

(5)支持二层VLAN(Virtual Local Area Network,虚拟局域网)管理和网管代理;

(6)支持文件系统和丰富的网络协议栈,其中具体使用的网络协议栈如下:

◆支持TCP(Transmission Control Protocol,传输控制协议)/IP协议栈(IPv4、ICMP、ARP、IGMP、TCP/UDP);

◆支持BSD、MUX接口;

◆支持Socket;

◆支持DHCP(Dynamic Host Configuratio n Protocol,动态主机配置协议)、Ping;

◆支持Router Stack;

◆支持Telnet;

◆支持FTP(File Transfer Protocol,文件传输协议)/TFTP(Trivial File Transfer Protocol,简单文件传输协议);

◆支持按照路由表实现IP转发;

◆支持END(Enhanced Network Driver,增强型网络驱动)网络驱动;

◆支持MIB(Management Information Base,管理信息库);

◆支持SNMP(Simple Network Management Protocol,简单网络管理协议);

◆支持二层VLAN的配置。

2.2 软件开发环境分析

华东计算技术研究所开发的ReWorks/ReDe嵌入式实时操作系统及开发环境提供符合IEEE POSIX 1003.13-2003/POSIX 1003.1-2001实时规范的接口和VxWorks5.5兼容接口,可以以极小的代码修改完成操作系统的软件移植,是使用VxWorks操作系统的核心网交换设备进行操作系统国产化的最好选择。

ReWorks实时嵌入式操作系统采用先进的面向对象和微内核技术开发,具有强实时性、可裁剪性和可伸缩性,并特别提供了VxWorks兼容层,方便应用软件的移植和二次开发。

ReDe:与ReWorks相配套的、继承嵌入式软件设计、开发、调试、仿真、测试和集成部署为一体的嵌入式软件开发环境[1]。

2.3 硬件开发环境分析

交换设备的P2010处理器使用高性能的e500 Power Architecture内核,并对外围电路进行了网口和串口的扩展。交换设备的硬件资源如表1所示:

表1 交换设备硬件资源

3 技术方案

3.1 BSP软件的开发

在ReWorks系统中,将BSP(Board Support Package,板级支持包)定义为底层硬件环境和ReWorks之间的接口,它的主要功能是系统加电后初始化目标机硬件、初始化操作系统及提供部分硬件的驱动程序,其中最基本的BSP仅需实现处理器复位、初始化、驱动串口和必要的时钟处理功能[3-4]。基于ReWorks操作系统4.7版本的BSP,P2010处理器的开发流程如图1所示:

图1 BSP开发流程

在ReWorks操作系统中,提供了标准的预内核初始化代码,串口轮询驱动程序及中断、时钟挂接程序,仅需要针对P2010进行的是BSP启动模块的修改和相关硬件驱动的开发。

(1)BSP模块启动

在ReWorks操作系统中,BSP模块启动是在bsp_ module_init函数中完成。该函数在ReWorks核心启动函数c_main中调用,主要完成系统时钟频率的赋值、关键硬件初始化、cache初始化、printk实现模块注册、中断控制器初始化、PCI(Peripheral Component I nterconnect,外设部件互连标准)总线初始化等,流程如图2所示:

图2 BSP初始化流程

针对P2010硬件特性,主要完成了中断控制器初始化、PCI总线初始化的修改。

(2)硬件驱动开发

针对P2010处理器的硬件环境,需要开发的驱动如下:

1)网卡驱动

面对核心网交换机的多样的网络协议栈需求,对网卡驱动和网络协议栈的关系进行梳理,具体如图3所示。网络协议栈一般通过网卡驱动提供的接口完成数据交互和控制管理。网卡驱动向网络协议栈提供的接口均封装在网络接口结构struct ifnet中,网络接口结构的初始化在网卡驱动模块初始化接口中完成。

由图3可见,一般通过网络协议栈提供的TCP/IP接口执行对网络设备的访问,而不直接访问网络设备。因此,对于网卡驱动而言,仅需提供模块初始化接口、网络协议栈接口[5-6]、中断服务接口[7]3类外部接口。具体步骤如下:

◆利用ReWorks4.7原有的“网卡驱动模板”搭建驱动框架;

◆实现“网卡驱动模块初始化接口”;

◆依次实现初始化接口、中断服务程序、启动传输接口和控制接口。

2)Flash驱动

Flash文件系统实现了对Flash设备的管理和访问,其架构如图4所示。

Flash文件系统主要由文件系统层、Flash协议层和Flash设备驱动层3部分组成。其中,Flash协议层和Flash设备驱动层是核心部分。

Flash协议层:该层是Flash文件系统的核心。其实现了Flash设备的管理,对Flash设备进行封装,使其作为1个普通的块设备使用。Flash协议层实现的Flash设备管理功能包括Flash的读写管理、坏块管理、冗余管理、损耗均衡、垃圾回收等。Flash协议层是以库的形式提供的,驱动开发人员只需要调用相关的接口即可。

Flash设备驱动层:该层主要包括Flash设备的底层驱动以及相关的配置文件,由驱动开发人员完成。主要包括Flash设备的配置、Flash设备的初始化、Flash的读/写/擦除等操作。

针对P2010,首先确定P2010所要实现的文件系统是NAND Flash文件系统。然后在BSP工程下面建立1个flash目录,建立相关文件,通过重载ReWorks操作系统中的flash_config_init()函数实现底层驱动,并将底层驱动接口注册到Flash协议层,完成Flash协议层配置、Flash属性配置、Flash底层驱动接口注册、Flash设备注册等。具体实现如下:

◆初始化Flash设备,包括Flash控制器初始化、相关结构体的分配、数据缓冲的分配等;

◆从Flash设备读取一页数据,根据相关参数的判定来读取Flash设备的一整页数据、单页、spare区;

◆向Flash设备写入一页数据,根据相关参数的判定来读取Flash设备的一整页数据、单页、spare区;

◆擦除Flash设备的一块数据。

3)显示设备驱动

核心网交换设备使用的是Planar公司的显示屏,其LCD控制器由FPGA(Field-Programmable Gate Array,现场可编程门阵列)实现,支持单色TFT显示[8], FPGA通过UPM接口挂在P2010上。根据对交换设备正常工作的VxWorks的二进制代码进行研究比较,获取了UPM初始化FPGA时的时延参数,初始化顺序,重新写入访问LCD控制器的FrameBuffer,即可完成显示设备驱动的开发。

4)PS/2键盘驱动

由于ReWorks4.7原有的多路I/O选择模块所使用的缓冲区管理方式与PS/2键盘驱动调用的请求缓冲区的方式不匹配,因此参照VxWorks6.8修改键盘驱动中键盘设备管理函数csps2_ioctl即可。这样ReWorks完成了对标准的PS/2键盘的支持。

5)扩展串口驱动

针对交换设备中P2010处理器的扩展串口,通过对比VxWorks6.8操作系统下应用软件的实现,明确扩展串口接在PCI总线上,寄存器基地址,中断号和片选信号后,即可完成对扩展串口的BSP开发。

3.2 图形支持

核心网交换设备在开发图形界面上使用的是基于VxWorks6.8的图形界面开发组件UGL和ZINC,这2部分组件是以库的形式集成到应用软件中的。为了减少应用适配过程中的工作量,人机界面BSP开发将同样把UGL和ZINC组件集成到ReWorks上。

将UGL和ZINC组件集成到ReWorks上有2种方案,分别是二进制库适配和源码适配。对这2种适配方案进行了专题设计和对比分析,得出结论如下:

一方面,由于UGL和ZINC库所使用的g++编译器同ReDe开发环境使用的g++编译器的版本不同,在应用软件的编译过程中问题较多;另一方面,采用二进制库适配会增加调试的难度,如VxWorks6.8有自己的一套设备打开和查找方式,但是ReWorks4.7版本的VxWorks兼容层并未提供相关接口。因此,最终采用源码适配的方式将UGL和ZINC组件集成到ReWorks上。

(1)UGL适配

在ReDe的资源配置界面中增加显示设备和输入/输出设备的配置;直接修改UGLDepend.h、UGLConfi g.h、UGLConfig.c这3个跟配置相关的文件,完成对显示设备驱动、键盘设备驱动的挂接。

UGL源码中并未直接提供汉字显示方案,故需要结合UGL字体驱动结构研究汉字显示的实现方式。ReWorks操作系统原本支持中文点阵字库是宋16×16点阵字库。由于宋16×16点阵字库可以通过字符的机器内码的低位来区分中文字符和英文字符,因此针对宋16×16点阵字库的特点,对位图字体引擎的文本显示函数UGLBMFTextDraw()进行修改,使得该接口能够支持中英文混合显示。

(2)ZINC适配

ZINC构件库的实现跟底层驱动的关联性不大[9],该组件主要依赖于UGL组件库和VxWorks兼容层。在ZINC源码适配的过程中遇到的主要问题是中文显示问题。

UGL层提供对宋16×16点阵字体的支持,ZINC层挂接UGL层的代码是ZINCgenerici_UGLdsp.cpp文件中,通过对该文件的修改实现ZINC层对中文显示的支持。在ZafScreenDisplay类的构造函数中将对应的属性改成宋16×16点阵字体的属性即可。

3.3 VxWorks兼容层改进

ReWorks通过对VxWorks的任务调度、任务通讯、中断、定时器、动态加卸载等系统调用接口及相关宏定义的封装,在应用层上实现了VxWorks源码级兼容。同时参照VxWorks驱动框架,实现了基于tyLib的字符设备、基于DOSFS文件系统的块设备驱动兼容[10],减少了应用软件的移植工作量。

但是,原ReWorks操作系统仅完成了对VxWorks5.5的兼容设计,而目前核心网交换设备普遍使用的是VxWorks6.8操作系统,针对交换设备的功能需求,在应用上的主要区别是增加了对二层VLAN的支持。因此,在VxWorks5.5的兼容层上添加VLAN组件,并完成接口适配。

3.4 应用移植

通过VxWorks兼容层的设计,在应用层实现源代码级兼容,在驱动层实现目标代码级兼容,便于现有应用系统的移植和二次开发,并可充分利用原有的应用系统,减少用户系统移植的工作量。结合交换设备的功能需求,应用软件在ReWorks下应配置如下组件:

(1)网口组件:勾选CP2010 BSP目录下的网卡驱动,然后勾选eTESEC1网口配置;

(2)Flash配置:交换设备支持文件掉电保存,勾选CP2010 BSP目录下的Flash支持;

(3)内存配置:对比VxWorks6.8下的内存使用情况,在ReWorks操作系统中将SYS_KERNEL_ MEM_SIZE配置成合理值;

(4)其他配置:勾选图形支持,使能提供对UGL、ZINC以及显示设备、键盘设备的支持;

(5)兼容层配置:为了兼容出现的大部分VxWorks中的函数接口,勾选VxWorks兼容模块下的所有子项。

由于ReWorks4.7和VxWorks6.8编译规则不同,ReWorks4.7使用的新版编译器在语法检查方面更加严格,通过这些语法规定的检查可进一步保证软件的稳定可靠,因此需要针对应用软件源代码进行小范围的移植修改。

4 应用验证

完成核心网交换设备应用软件ReWorks4.7操作系统的移植后,对交换设备的功能、性能进行了测试,满足核心网交换设备功能需求。随后对ReWorks4.7和VxWorks6.8操作系统的人机操作界面、系统响应时间进行了对比测试[11],具体情况如表2和表3所示:

由表2可以看出,对照VxWorks6.8下的图形界面,在ReWorks4.7下的各类控件显示效果、对事件的响应均保持和VxWorks6.8一致。

由表3可以看出,多个事件中的系统响应时间的指标差值不超过0.2μs,对于使用1ms为刻度的核心网交换设备来说,这个细微的差别是可以接受的。

表3 系统响应对比情况

5 结束语

通过对P2010处理器的ReWorks操作系统的研究分析及应用,可以逐渐了解从单核处理器到双核处理器基于ReWorks操作系统的BSP开发、驱动开发以及应用移植和开发的技术框架及处理流程,将对后续其他应用软件的移植提供较好的借鉴性。

此外,经过多年的研究,国产化的嵌入式操作系统也日益成熟。通过测试分析,验证了国产化操作系统的实时性和稳定性,能满足现阶段核心网交换设备以及其他方向的军事应用需求,可广泛地应用于核心网、接入网的各类交换设备和传输设备中。同样应紧跟硬件技术的发展,尽快实现更加完善的高端硬件的嵌入式系统。

嵌入式操作系统的国产化只是信息安全的一小部分,只有操作系统和核心芯片真正结合起来全部国产化,并广泛应用于我军型号产品,才能为我国的信息安全及国防事业做出巨大贡献。

[1] 谢彬. ReWorks/ReDe嵌入式实时操作系统及开发环境产品白皮书[R]. 中国电子科技集团公司第三十二研究所, 2013.

[2] Freescale Semiconductor, Inc. P2010 QorIQ Integrated Processor Hardware Specifi cations[R]. 2013.

[3] Wind River. VxWorks BSP Developer’s Guide 6.8[R]. 2010.

[4] Wind River. VxWorks Device Driver Developer’s Guide[R]. 2010.

[5] Wind River. Wind River Network Stack Programmer’s Guide[R]. 2010.

[6] Wind River. Wind River SNMP Programmer’s Guide[R]. 2009.

[7] 赵立业. 基于PowerPC的ReWorks系统移植及网络模块的设计与实现[D]. 长沙: 国防科学技术大学, 2007.

[8] Planar Systems, Inc. EL320.256-F6 and FD6[R]. 1998.

[9] Zinc Software Incorporated. Zinc Programmer’s Reference[R]. 1998.

[10] 董巍,马云. 基于ReWorks操作系统的实时多任务程序设计[J]. 中国新技术新产品, 2013(9): 53.

[11] Wind River. VxWorks BSP Validation Test Suite User’s Guide[R]. 2010.★

雷鹏:学士毕业于湖南大学计算机与通信工程学院,现任中国电子科技集团公司第七研究所项目总师,主要研究方向为军用交换设备软件框架设计和国产化操作系统在军工领域的应用。

生盛义:学士毕业于哈尔滨工业大学,现任中国人民解放军第二炮兵驻广州军事代表室军代表,主要研究方向为军用通信领域。

Application and Analysis of ReWorks Operating System Based on P2010

LEI Peng1, SHENG Sheng-yi2(1. China Electronics Technology Group Corporation No.7 Research Institute, Guangzhou 510310, China;2. The Second Artillery Force of the PLA in Guangzhou Factory Military Representative Room, Guangzhou 510310, China)

With both the improvement of national information security awareness and the promotion of domestic platform based on embedded operating system across sectors, according to core network switching equipment and the features of its FreeScale P2010 CPU, the method and its steps of ReWorks operating system (OS) in BSP development, graphics support, VxWorks compatibility layer design and application transplantation were analyzed in depth. By comparing ReWorks and VxWorks Oss, it demonstrated that the latter not only basically implements the functions of core network switching equipment, but also highly enhances security and independent control capability.

ReWorks embedded operating system FreeScale P2010 board support package (BSP)

10.3969/j.issn.1006-1010.2015.12.010

TP316.2

A

1006-1010(2015)12-0048-06

雷鹏,生盛义. 基于P2010的ReWorks操作系统应用及分析[J]. 移动通信, 2015,39(12): 48-53.

2015-04-13

责任编辑:袁婷 yuanting@mbcom.cn

猜你喜欢
嵌入式操作系统网络协议核心网
GSM-R核心网升级改造方案
典型实时嵌入式操作系统应用分析
一种蓝牙多跳网络协议的设计与研究
5G移动通信核心网关键技术
通信核心网技术的应用探讨
基于载波技术的多点温度测量系统设计
基于DPI技术的语音视频流量监控系统设计与实现
基于嵌入式操作系统的工业采集板设计
VoLTE核心网建设方案
应用服务型人才培养体系下的嵌入式操作系统教学改革探索