《嵌入式实时操作系统VxWorks下BSP分析及VxWorks裁减.pdf》由会员分享,可在线阅读,更多相关《嵌入式实时操作系统VxWorks下BSP分析及VxWorks裁减.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第15卷 第2期2005年6月天 津 工 程 师 范 学 院 学 报JOURNAL OF TIANJIN UNIVERSITY OF TECHNOLOGY AND EDUCATI ONVol.15No.2Jun.2005嵌入式实时操作系统Vx Works下BSP分析及Vx Works裁减3褚 哲,孟小锁(西安微电子技术研究所,陕西 西安710075)摘 要:以Vx Works操作系统为例,阐述了BSP的概念、原理和系统启动流程,并在此基础上以某目标机为原型,着重叙述了Vx Works的裁减方法。关键词:Vx Works;板级支持包;映像中图分类号:TP316.2 文献标识码:A 文章编号:16
2、7321018(2005)0220027204BSP analysis under embedded real2ti me operatingsystem VxW orks and VxW orksta ilorCHU Zhe,MENG Xiao2suo(XianMicroelectronics Technology Institute,Xian 710054,China)Abstract:This article takes the Vx Works operating system as an example to illustrate the concept,the princirlea
3、nd the start2up procedure of BSP.Under this foundation it uses certain target machine as original form to ex2plain the tailormethod of Vx Works.Key words:Vx Works;board suppot package;imageVx Works操作系统是美国W indRiver公司推出的一种嵌入式强实时操作系统,自20世纪80年代问世以来,以其不断推出的升级版本、高性能内核以及友好的用户开发环境,在嵌入式实时操作系统领域逐渐占据一席之地,尤其以成
4、功应用于火星探测车和爱国者导弹等高科技产品而声名鹊起,拥有较多的用户。BSP(board suppot package)为板级支持包的缩写。因为Vx Works标准的BSP是针对PC的,对于PC机用户,主要按照标准配置,不需要做太大的改动就可以建立主机与目标机的调试环境。而对于使用非标准(不是PC机)加固机的用户,则需要对BSP进行修改以满足特定目标机的要求,对Vx Works的裁减就是通过对BSP的修改来完成的。要进行以上的工作,就需要了解Vx Works的启动过程及BSP的概念和工作原理,本文在阐述了BSP概念和工作原理的基础上,以某目标机为原型,详细叙述Vx Works的裁减方法。1BS
5、P的概念及原理BSP介于主板硬件和操作系统之间,属于操作系统的一部分,目的是支持操作系统,使之能够更好地运行于硬件主板。BSP是相对于操作系统而言的,不同的操作系统对应于不同定义形式的BSP,例如Vx2Works的BSP和Linux的BSP相对于某一CPU来说尽管实现的功能一样,可是写法和接口定义是完全不同的,所以写BSP一定要按照该系统BSP的定义形式来写(BSP的编写过程大多数是在某一个成型的BSP模板上进行修改),这样才能与上层OS保持正确的接口,良好地支持上层OS。BSP在Vx Works中的地位如图1所示。BSP文 件 在Vx Works/target/config/all和Vx2W
6、orks/target/config/bapname文件夹里。其中,all文3 收稿日期:2004-12-08.作者简介:褚 哲(1975),男,硕士研究生,研究方向为嵌入式软件.1995-2005 Tsinghua Tongfang Optical Disc Co.,Ltd.All rights reserved.件夹里的文件是所有BSP的通用文件,bspname文件夹的文件是用户自己定制的BSP文件。经过编译、链接,并在makefile和bspname等文件的控制下,原程序最后将生成Vx Works映像。Vx Works的映像分为可下载映像和可引导映像。图1VxW orks与BSP的层次关
7、系 可下载映像(loadable image)包括两部分:一是Vx Works;二是bootRom。两部分是独立创建的。其中bootRom包括压缩的bootRom映 像、非压缩 的bootRom映像和驻留ROM的bootRom映像3种类型。可引导映像(bootable image)是将引导程序和Vx2Works融为一体的映像,它常常是最终产品,包括不驻留ROM的映像和驻留ROM的映像2种类型。BSP是所有与硬件相关的代码体的集合,主要包括:(1)在一个系统被引导时,目标系统硬件初始化程序;(2)目标系统上设备的驱动程序,这些设备包括定时器、以太网控制器、一组串行口和SCSI控制器等,控制这些设
8、备的函数成为设备驱动程序。Vx Works系统的BSP功能模块关系如图2所示。图2BSP各功能模块关系2VxW orks启动过程 考虑到Vx Works映像分为可下载映像和可引导映像,不同的映像启动顺序略有不同,但大体的顺序是相同的。因此,此处以固化在ROM中的可引导映像(Vx Works_ROM)来讲解Vx Works的启动过程,如图3所示。图3 固化在ROM中的VxW orks引导顺序(1)机器加电以后,处理器“跳”到ROM或Flash中,用汇编语言编写的初始化程序rominit(),它在文件rominit.s中,主要完成:禁止中断;保存启动类型(冷/热启动);硬件相关的初始化;转到函数r
9、omstart()。(2)romstart(),它在文件bootinit.c中,从ROM中将数据段拷贝到RAM,将内存清0;从ROM中将代码段拷贝到RAM;根据启动类型调用函数usrInit()。(3)usrInit(),它在文件usrConfig.c中,将BSS未初始化的段清0;将引导类型保存到sysStartType;调用异常向量初始化函数excVecInit(),初始化所有系统和默认的中断向量;调用系统的硬件设备初始化函数sysHwInit();调用内核库初始化函数usrKernelInit();调用内核初始化函数kernelInit()。(4)usrKernelInit(),它在文件u
10、srKernel.c中,主要完成库的初始化工作。class LibInit();taskLibInit();taskHookLibInit();semBLibInit();semMLibInit();semCLibInit();wdLibInit();82天 津 工 程 师 范 学 院 学 报 2005年6月 1995-2005 Tsinghua Tongfang Optical Disc Co.,Ltd.All rights reserved.qInit();workQ Init()。(5)kernelInit(),初始化多任务环境并启动内核,它在文件kernelLib.c中。(6)usrR
11、oot(),它在文件usrConfig.c中。初始化I/O系统,安装设备的驱动,根据配置文件ConfigAll.h和Config.h中的配置创建指定的设备。(7)转入用户创建的应用程序的入口。3VxW orks的裁减方法及步骤 在对BSP的概念和Vx Works的启动顺序有了一定的了解之后,此处以某目标机为原型阐述Vx Works的裁减方法。3.1 目标机配置CPU:80486DX2266,浮点协处理器与80387兼容。存储区:SDRAM,00000H23FFFFH,256 KB,其中000002007FFH为某固定程序使用;EPROM,F8000H2FFFFFH,32 KB。中断控制器825
12、9A一片。定时器8254。3个定时计数器的输入时钟频率为1 250 000Hz。通讯控制器82C52,输入时钟频率为14 745 600Hz。除此之外,目标机无软驱,无网卡,有两个串口。3.2 建立所需目录在C:Tornado target config 中建立子目录allxxx,bspxxx,其中xxx用户可根据需要将其改为所用目标机的名称。拷贝C:Tornado targetconfigall中的全部文件到子目录allxxx中,拷贝C:Tornado target config pc486中的全部文件到子目录bspxxx中以便修改且不影响其他人的使用。3.3 修改Makefile 修改或添
13、加以下语句:(1)TARGET_D I R=bspxxxTARGET_D IR为bsp目录名,将其指向要修改的bsp目录。(2)USRCONFIG=(TGT _ D IR)config(TARGET_D IR)usrConfig.cCONFIG _ALL _ H=(TGT _D IR)config(TARGET_D IR)usrConfig.cTGT_D IR为target路径,默认为(W I ND_BASE)target,其中W I ND_BASE为Vx Works的开发环境Tor2nado的安装目录,此处为C:Tornado。(3)CONFIG_ALL=.allxxx 将缺省All的文件复
14、制到allxxx目录,在allxxx目录下作自己的修改。修改CONFIG_ALL定义,指向自己的ALL目录。(4)因为用此目标机中的固定程序下载Vx Works应用的映像,所以,#define ROM_BASE_ADRS00001000#define ROM_TEXT_ADRS00001000#define ROM_SIZE00008000#define RAM_H IGH_ADRS00001000 其中,用规则Vx Works_rom_low来生成映像,以便映像中包含rominit.o,实模式转换为保护模式。ROM_BASE_ADRS:rom的起始地址ROM_TEXT_ADRS:rom映像的
15、起始地址ROM_SIZE:rom的大小RAM _H IGH_ADRS:Vx Works应用在存贮器低端定位开始的地址注意:ROM _TEXT_ADRS,ROM _SIZE,RAM _H IGH_ADRS,和RAM_LOW_ADRS在config.h,Make2file和Makefile.3 文件中都要定义,且大小必须要保持一致。Makefile中的上述地址不以0X开头,与con2fig.h中有所区别。(5)MACH_EXTRA=i82c52Sio.o ls Demo.oi82c52Sio.o ls Demo.o这两个模块是为目标机所编写的特定模块。此处用户可加入与目标机有关的所需模块。3.4
16、修改configAll.h(1)因RAM容量只有256 KB,故排除掉不需要的软件模块。把“I NCLUDE SOFT WARE FACI L ITIES”中不需要的模块移到“EXCLUDE FACI L ITIES”中。(2)在“low memory lauout”中修改#define BOOT_Line_offset0 x828 因为不用引导程序,所以修改为#define Exc_MSG_offset0 x828 这是因为Vx Works系统(x86)低端存储区缺省布局是中断向量表0 x0000全局描述符表0 x800共享内存0 x1100启动行0 x1200异常消息0 x1300软盘直接
17、访问区0 x2000初始化堆栈0 x5000系统映像0 x800092 第15卷 第2期 褚 哲等:嵌入式实时操作系统Vx Works下BSP分析及Vx Works裁减 1995-2005 Tsinghua Tongfang Optical Disc Co.,Ltd.All rights reserved.全局描述符表仅用5项,不用启动行,把rom Init.s系统映像中第一模块定位在0 x1000处。3.5 修改config.h(1)因为没有PC控制台,所以在PC console defi2nitions处改#if TRUE为#if FALSE。(2)因为此处的通讯用COM2口,所以添加#u
18、ndefCONSOLE_TTY#defineCONSOLE_TTY1(3)因为用目标机的固定程序下载Vx Works应用的映像,所以#define ROM _BASE_ADRS0X1000 根据片选参数设置ROM基地址#define ROM_TEXT_ADRS0X1000#define ROM_SIZE0X8000#define RAM_H IGH_ADRS0X1000(4)因为无软驱,所以在driver and file system op2tion部分用#if FALSE和#endif删除4个#define。(5)因为无网卡,所以在Network driver option部分取消网络驱动
19、程序的定义。(6)因为用一片8259A,所以#difine NUMBER_OF_IRQS8(7)根据SDRAM的大小设置LOCAL_MEM_SIZE#defineLOCAL_MEM_SIZE0X400003.6 修改PC.h(1)#definePIT_CLOCK1250000 定时器输入时钟。(2)#defineROM_STACK0X1000 系统初始化时用的初始堆栈指针。3.7 修改sys L ib.c#include“i8259 Intr.c”#include“i8253Ti mers.c”3.8修改c:tornado target config d5b usrCon2fig.c 将sys
20、clkRateSet(60)改为sysclkRateSet(50)。Vx Works默认系统时钟速率为60tick,在此处改为所需的50tick。3.9DOS下做tornadohostx862win32 bin torvars.bat 设置环境变量cdtornadotargetconfigbspxxxmakeVx Works_rom_low 在低端存储区生成Vx Wokrs应用映像 将Vx Works_rom_low转换为hex文件,烧入目标机的ROM中,加电,成功启动。4 结束语 本文结合某目标机的硬件配置,在介绍BSP的概念的基础上,给出了一个对Vx Works进行裁减以适应目标机的详细过程,为建立主机与宿主机之间的开发调试环境以及后续的应用程序的开发打下了坚实的基础。参考文献:1 王学龙.嵌入式Vx Works系统开发与应用M.北京:人民邮电出版社,2003.2 陈智育.Vx Works程序开发实践M.北京:人民邮电出版社,2004.03天 津 工 程 师 范 学 院 学 报 2005年6月 1995-2005 Tsinghua Tongfang Optical Disc Co.,Ltd.All rights reserved.