丁汉清 韩雪琴 杨永双

(郑州轻工业学院计算机与通信工程学院,郑州 450002)

摘要:使用WindRiver公司提供的Torrnado集成开发工具,将VxWorks移植到PowerPC处理器上,将移植结果应用在跑马灯的实现上,运行正常,表明移植成功。

DING han-qing HAN xue-qin Yang yong-shuang

College of Comp. and com. Eng., Zhengzhou Univ. of Light Industry, Zhengzhou, 450002, China

Abstract: The integrated development kit which WindRiver Corporation provides is used, and VxWorks is transplanted to the PowerPC processor, and the result is applied to the lantern. The normal running indicates successful transplant.

1 引言

VxWorks操作系统是美国Wind River公司设计开发的一种嵌入式实时操作系统(RTOS)。1983 年成功推出以来,已顺利应用到航空、航天、医疗、通信等领域,目前,已成为实际上的工业标准和军用标准[1]。

Motorola 公司的PowerPC 系列微处理器种类繁多,而且性能优越,系统集成度高,扩展能力强,可以广泛应用于各类嵌入式系统中,因此,成为当今嵌入式系统应用的主流。而在国内,尤其是在高校,VxWorks 系统方面的研究与应用尚处在起步阶段,知识储备较少,为使教学和实际应用紧密结合,我们开发了一套基于VxWorks/PowerPC 的嵌入式教学系统,开发过程中,研究的内容主要包括[2]:

  • VxWorks 操作系统技术特征的分析。
  • 以PowerPC 860(或其他合适的CPU)为核心的实验板的硬件设计。
  • VxWorks 系统的移植,其关键是基于PowerPC 860 的VxWorks BSP 驱动程序包的开发。
  • 实例程序的开发。主要涉及VxWorks 中的多任务调度、任务间通信机制以及所支持的网络协议的应用。

其中,VxWorks 系统的移植是整个系统开发的关键,下面主要就这方面的问题进行一些探讨。

2 VxWorks 操作系统的移植

要使得 VxWorks 操作系统能够在以PowerPC 860(CPU)为核心的硬件系统上正常运行,也就是进行操作系统移植,必须首先编写BSP 软件。由BSP 软件利用Tornado2.2 集成开发环境生成bootrom 程序和VxWorks 操作系统内核。系统首先运行bootrom 程序,初始化开发板上的硬件资源,然后通过串口或网口下载VxWorks 操作系统内核。当VxWorks 操作系统在硬件系统上正常运行后,操作系统移植工作完成[3]。

2.1 编写 BSP 软件

摘要:详细介绍实时多任务操作系统VxWorks环境下驱动程序的设计原理;针对驱动程序实现的困难,给出VxWorks下实现驱动程序的工作步骤。文件以PC/104-CAN适配卡为例,简要介绍硬件结构,重点给出驱动程序实现的关键代码。

关键词:RTOS VxWorks PC/104 CAN I/O系统 驱动系统

VxWorks是一款优秀的实时多任务操作系统,具有抢占式调试、中断延迟小等特点。本文在简要介绍必备的硬件环境下,以VxWorks为平台,详细介绍驱动程序的开发。

1 PC/104-CAN适配卡的硬件结构

PC/104-CAN适配卡主要由CAN控制器(SJA1000)、光电隔离(6N137),收发驱动器(82C250)及译码电路组成。编程主要了解的是控制器SJA1000。CAN适配卡原理如图1所示。

VxWorks PC104 CAN Card Schematics

2 CAN地址译码和中断选择

系统104主板的CPU为486DX,其对接口板访问有两种方式:内存映射和I/O访问。I/O寻址采用专门的指令,每次只能传送单个字节。内存映射方式可以访问较大的地址空间并且指令丰富,便于实现快速交换数据。本文讨论的CAN卡采用存映射模式工作,与486DX接口是104总线,它与ISA总线兼容。对于Intel X86体系的CPU,ISA可以映射的空间为0xC8000~0xEFFFF。使用比较器和地址选择开关组成可选端口地址译码电路,通过开关选通内存映射基地址(C8000H、C9000H、CA000H、…、EF000H),以避免与其它器件冲突。CAN偏移地址分配如下:

00~FFH SJA1000的寄存器;

100H~1FFH 对该范围内的任意地址进行写操作,均可导致CAN硬件复位。

SJA1000的INT引脚通过跳线选择IRQ3~7、IRQ9~12或IRQ15中的一个,避免与其它的适配卡冲突。

3 PC/104-CAN适配卡驱动实现

3.1 VxWorks驱动概述

VxWorks操作系统有两种方式实现驱动。第一种方式是,把设备驱动程序作为独立任务实现,直接在顶层任务中实现硬件操作,完成特有专用的驱动程序。第二种方式是,VxWorks的I/O系统将设备程序作为内核过程实现。这种方式便于实现I/O子系统的层次模型,便于文件系统一起把设备作为特殊文件处理,提供统一的管理、统一的界面和统一的使用方法,并把设备、文件及网络通信组织成为一致的更高层次的抽象,为用户提供统一的系统服务和用户接口。我们和这种驱动方式。

作为I/O系统和硬件设备之间的连接层,VxWorks驱动就是屏蔽硬件操作,为I/O系统提供服务。实现一个完整的驱动,必须了解VxWorks下I/O的三个基本元素:File、Driver和Dervice。File是为用户提供访问设备的统一接口;Driver是实现具体的基本控制函数,也就是实现I/O系统所需要的接口;而Device则是一个抽象的硬件设备,是一系列的结构体、变量和宏定义对实际物理设备的定义。一般而言,实现一个驱动应该有三个基本的步骤:

ETX-CD VxWorks5.5 BSP使用指南

1. 把BSP文件夹拷贝至Tornado\target\config 文件夹下

2. 打开BSP包中config.h文件,找到#define DEFAULT_BOOT_LINE 根据启动需要来更改启动命令行,默认为从网络加载内核镜象。(设置好主机和目标机的IP地址)

3. 打开Tornado ->Build->Build Boot ROM,

Kontron ETX-CD build bootrom

在 Select a BSP 中选择CD的BSP包,选择生成bootrom.bin文件。

4. 选择 File->New Project->Create a bootable VxWorks image, 在下面界面选择CD BSP

Kontron ETX-CD select bsp

然后按照提示生成vxworks内核镜象。

5. 把启动介质做成可DOS启动的系统,把生成的引导文件bootrom.bin放到启动介质上,同时改文件名为bootrom.sys,把 Tornado221\host\x86-win32\bin下的vxsys.com文件也拷贝到启动介质上,进入DOS,运行 vxsys C: (C:启动介质的盘符)。

6. 打开主机的Tornado提供的ftp服务器工具

Kontron ETX-CD Set Ftp

设置好ftp的目录以及用户名和密码,用户名和密码要和bsp中config.h中bootline所写的相一致。重新启动目标机系统即可从主机加载。

获取BSP源码,请关注微信公众号:北南南北

北南南北

 

概述:

本文就固捷PATA硬盘在vx68下的驱动问题作简要描述。

环境:

硬件环境:

Kontron ETX CD模块

固捷44 pin PATA硬盘 ( 32G )

软件环境:

vxWorks 6.8

ATA Drv (INCLUDE_ATA)

初步测试结果:

1) BIOS里面需要将IDE的模式先设置成AUTO,再设置成USER,然后才可以启动bootrom

2) 在调试代码过程中,bootrom第一次启动的时候会出现PS2和USB的键盘都不能用的情况,vxworks重启后才可以用

3) 同样的测试环境,将硬盘换成120GB的HITACHI的44 pin PATA硬盘,一切正常。

改进的驱动:

目前融合在ETX CD的VX68 BSP [kontron_etxcd] 里面,库文件名为:libKontron_etxcd.a

源码在kontron/src/下

最终测试结果:

三星(Samsung)官方的ARM9 S3C2510开发板的VxWorks 5.5 BSP, 可以方便地移植到相似的ARM9 开发板上,比如S3C2410的开发板,S3C2440的开发板。

VxWorks 5.5 BSP for Samsung ARM9 S3C2510

获取BSP源码,请关注微信公众号:北南南北

北南南北