Board logo

标题: Samsung S3C2440平台上的Vxworks BSP移植 [打印本页]

作者: yuyang911220    时间: 2015-2-26 15:31     标题: Samsung S3C2440平台上的Vxworks BSP移植

美国WindRiver公司于1983年设计开发的VxWorks操作系统是一种嵌入式实时操作系统(RTOS),是嵌入式操作系统的典型代表,它的高可靠性、可剪裁性、强实时性被广泛的应用在军事、通信、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、导弹制导、飞机导航等。BSP(Board Support Package)在VxWorks操作系统中起到了部分接口的驱动和硬件初始化的作用,它是生成bootrom和VxWorks映像文件的前提,而S3C2440是Samsung公司设计的ARM920T系列的核心处理器,是嵌入式领域比较常用的ARM处理器。因此,研究基于S3C2440平台上的Vxworks BSP移植具有重要的意义。本文就BSP的概念、BSP移植过程中重点修改的几个文件、串口和网口驱动以及BSP的调试和仿真做详细的介绍。

BSP概述

VxWorks操作系统将所有硬件的功能函数分别放到一系列库中,这些库就被称为板级支持包BSP。BSP是连接VxWorks操作系统与硬件平台的一个接口软件包,在引导系统、支持系统运行过程中扮演着重要的角色,首先,通过BSP可以生成引导操作系统的bootrom;其次,引导行工程的建立基础就是BSP;最后,BSP具有与用户交互的作用,可以提供一个基础的硬件调试环境。BSP还可以使VxWorks运行于特定的硬件平台,如ARM、PPC、X86等,它包含了一系列与硬件相关的函数,完成针对硬件的基本输入与输出操作,可以使上层程序员在不用熟悉硬件的情况下进行编程。例如,一般它完成以下操作:目标板硬件初始化、内存控制器初始化、堆栈初始化、外围设备初始化(I/O、Interrupt……)、异常向量处理、CACHE操作、硬件设备的底层驱动、定时器驱动、串口驱动、END网络驱动、FLASH驱动、LCD驱动等。

BSP在嵌入式系统中扮演的角色,很类似于在PC系统中的BIOS和驱动程序的地位。图1中包括了VxWorks操作系统的各种组件,指明了BSP在整个系统中所处的地位和作用。

VxWorks在S3C2440上的BSP设计

S3C2440简介

移植目标机的硬件配置具体如下:处理器S3C2440,采用ARM920T内核,内存大小64M;NAND Flash大小为128M;

NOR Flash大小为2M;3路URAT;2路SPI;IIC总线接口;网卡:DM9000,10/100M的自适应。



图1 BSP在嵌入式系统中的位置框图

BSP的移植过程

要进行BSP的开发和设计,最好有一个可参考的模板,由于Samsung S3C2440A的内核是ARM920T,所以参考的模板选择Tornado for arm 的integrator920t。BSP文件主要在VxWorks编译环境Tornado的目录target/config/all和target/config/integrator920t文件夹中。其中,all文件夹里的文件对于绝大多数BSP都是共用的,一般来说不用怎么修改,重点是修改integrator920文件夹下的几个文件,这主要是指makefile、config.h、rominit.s和sysLib.c中相关部分的修改,另外添加了串口驱动和DM9000的网卡驱动。

修改Makefile文件

Makefile的两个主要功能就是提供文件之间的依赖关系和目标文件生成方法,定义编译和链接整个BSP的规则,在makefile文件中有一些参数已经在config.h文件中定义过了,但是必须保证两处的定义一致,否则会出现编译错误。下面介绍一些需要修改的参数:

CPU:描述目标板的处理器类型,设计中为ARMARCH4;

TOOL:该参数用来选择编译工具,VxWorks中可使用GNU和DIAB两种,设计中用GNU编译器来编译目标代码;

TGT_DIR:默认设置为$(WIND_BASE)/target;

TARGET_DIR:默认为BSP所在的目录,设计中为mini2440;

VENDOR:板卡生产商的名称,设计中为HITSAT;

BOARD:板卡的名称,设计中为OMU;

ROM_SIZE:ROM或Flash的大小(十六进制);

RAM_LOW_ADRS:VxWorks在RAM中的起始地址,即入口地址;

RAM_HIGH_ADRS:非驻留ROM内核的启动程序加载地址。关于入口地址和高位地址的指定需参考硬件的RAM组织。

该文件下其余的设置和定义都与模板中的一致。

修改config.h

config.h文件是BSP软件中比较重要的一个文件,VxWorks内核组件的配置可以通过config.h文件来定义。config.h文件包含了所有头文件和CPU相关的特殊定义,config.h文件中的配置参数是在configAll.h文件内容的基础上根据开发板的硬件资源设置的,其中包括定义引导行、修改存储空间的地址等。下面详细介绍config.h文件中修改的部分配置参数:

(1)定义引导行

#define DEFAULT_BOOT_LINE "dm(0,0) zwj-PC:d:\VxWorks h=192.168.0.1 e=192.168.0.2 u=zwjhjj pw=zwjfile tn=mini2440"

其中:dm(0,0)为boot device,即启动设备映像;

zwj-PC为host name,即主机名;

d:\VxWorks为file name,即要下载的VxWorks镜像文件路径;

h=192.168.0.1为主机IP地址;

e=192.168.0.2为目标板IP地址;

u=zwjhjj为FTP登陆时的用户名;

pw=zwjfile为FTP登陆时的密码;

tn=mini2440为目标板名称。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0