68 VxWorks实时操作系统下BSP
%A VxWorks实时操作系统下BSP
%A 丁大尉 烟台大学 王金刚 宫霄霖 姜 平 天津大学
%A 摘要文中介绍实时操作系统V Works中BSP的概念,以及开发BSP必须要了解的交叉调试环境、系统的启动过
%A 程、V works Image的分类以及BSP文件的组成等内容。
%A 关键词 VxWorks lISP
%A The Concept of BSP in VxWorks
%A DiI1g Dawei Wang Jingang Gong Xiaolin Jiang Ping
%A Abstract In this paper,the concept of BSP in VxWorks,a real―time operating system are presented. It also described
%A the cross debug environment,the boot process of the system,the sorts of VxWorks Image and the composition of BSP files.
%A Keywords VxWorks BSP
%A 1 BSP
%A Vxworks操作系统是一种嵌入式实时操作系
%A 统(RTOS),它采用微内核的结构,可以运行于
%A 目前几乎所有的CPU 上,包括intel x86、Power
%A PC、ARM、MIPS等, 但前提是必须有相应的
%A BSP (板极支持包)支持。BSP包含了与硬件相关
%A 的功能函数,提供Vxworks与硬件之间的接口,
%A 但是BSP不等同于硬件驱动。
%A BSP主要完成硬件初始化,包括系统上电时
%A 在特定位置提供人口代码,初始化存储器,关中
%A 断,把VxWorks加载到RAM 区等; 支持Vx―
%A Works与硬件驱动的通信。有些硬件驱动是需要
%A 。BSP支持的,例如硬件驱动定义它的中断服务例
%A 程(ISR),由BSP来将此ISR连接到中断向量表;
%A 将独立与硬件的软件和与硬件相关的软件在Vx―
%A Works系统中很好地结合起来。
%A 2 BSP开发
%A 做BSP开发,应首先建立Tornado开发环境,
%A 根据具体情况配置VxWorks组件;接着选择合适
%A 的BSP模板,对相应的文件进行修改;最后添加
%A 自己的设备驱动程序,进行仿真和调试。
%A Tornado 2.2交叉调试环境嵌入式操作系统
%A 在调试环境上与桌面操作系统存在明显的区别,它
%A 又称为交叉调试。因为Tornado开发环境是基于
%A 架构的,所以选择的时候要根据自己的处理器内核
%A 选择合适的版本。因为我们使用的处理器
%A S3CA510B采用的是ARM 核, 所以我们选用Tor―
%A nado2.2 for ARM ,这就保证了使用的开发环境里
%A 包括了需要的开发工具以及同类的BSP参考模板。
%A ? /target/eonfig/all/eonfigAl1.h中包含所有
%A 的VxWorks组件选项, 可以在32程中对这些组件
%A 进行添加或者删除。
%A 选择BSP模板并对相应文件进行修改 Vx-
%A Works的板级支持包BSP提供了Vxworks同硬件
%A 环境的基本接口界面,支持对硬件驱动的访问,将
%A Vxworks中硬件相关和硬件无关的软件集成到一
%A 体,其功能相当于PC机的BIOS。它包括源文件、
%A 头文件、make文件、导出文件和二进制的驱动模
%A 块。
%A BSP主要由C源文件和汇编文件组成,BSP
%A 的开发可以从WindRiver公司提供的BSP模板开
%A 始,在此基础上作相应的修改。主要需要做以下几
%A 个方面的修改:
%A ① eonfig.h
%A VxWorks的缺省配置由eonfigAl1.h确定, 用
%A 户需要按照自己的需要来改写eonfig.h,如设置存
%A 储区的大小、增加新的程序模块、删除不需要的模
%A 块等。
%A ② makefile
%A 它控制生成VxWorks的映像文件的类型,另
%A 外它还包含存储区大小的信息。所有新增加的程序
%A 模块必须在makefile中使用MACH ―EXTRA 命
%A 令将其目标模块加入到最终的VxWorks映像文件
%A 中。
%A ③ 编制专用接口驱动程序
%A VxWorks的缺省配置提供了通用接口的驱动
%A 程序,但是并不一定适合用户具体的硬件环境,所
%A 以用户需要使用ar-d命令将这些模块从库文件中
%A 删除,然后将其源程序复制到用户的BSP 目录中
%A 进行修改,并在makefile中使用MACH―EXTRA
%A 命令将其目标模块加入到最终的Vxworks映像文
%A 件中。
%A 维普资讯
http://www.cqvip.com
%A 皇 量技术?2005年第一期 69
%A VxWorks Image的分类 VxWorks Image可
%A 以分为三类:ROM-based Image(压缩或非压缩);
%A ROM -Resident Image; Loadable Image
%A 。
%A VxWorks Image由Text段、Data段和BSS
%A 段组成,Text段是可执行代码段,Data是已初始
%A 化的全局变量和静态变量,BSS段是未初始化全局
%A 变量和静态变量。
%A 对于不同的Vxworks Image,启动步骤也不
%A 一样。但对于三种Image,第一步是相同的,都是
%A 处理器跳到某一特定地址, 开始执行启动代码
%A (BootStrap)。它们都完成相同的功能:关闭中断,
%A 初始化目标存储器,装载要运行的VxWorks Im―
%A age段到RAM 中。
%A RoM―Resident Image与ROM-based Image两
%A 种Image都是用于产品阶段, 即直接烧录到ROM
%A 中。在开发调试阶段, 这两种Image由于需要频
%A 繁的烧写RoM 所以非常不方便。
%A Loadable
%A Image 是位
%A 于主机上的
%A 二进制文件,
%A 由烧录在目
%A 标板RoM
%A 中的boot―
%A RoM Image
%A LoCAL MEM
%A LoCAL ADRS
%A RAM LOW
%A ADRS
%A FREE RAM
%A ADRS
%A RAM HIGH
%A ADRS
%A 将其从主机
%A 下载到目标 图1 Loadable Image的下载过程
%A 板的RAM
%A 中。实际上,boot―RoM Image是一个高度裁减的
%A 最小Vxworks系统,它的唯一作用就是实现目标
%A 机与主机通信,将位于主机硬盘上的loadable Im―
%A age下载到目标板RAM 中, 执行情况如图1。首
%A 先执行BootStrap,Bo otStrap完成最基本的硬件初
%A 始化工作, 并将boot―RoM Image拷贝到RAM ―
%A H IGH
%A ― ADRS处开始执行,把主机上指定位置的
%A Loadable Image下载到RAM ―LOW ―ADRS处,
%A 然后由此Image来接管目标板,Bo ot Program 已
%A 完成使命,它所占用的RAM 区由系统回收,作为
%A 系统内存池的一部分。另外,boot―RoM Image也
%A 可以是压缩的, 在拷贝到RAM ―HIGH ―ADRS
%A 时进行解压;也可以驻留在ROM 中执行,而只将
%A 它的Data段和BSS段拷贝到RAM ―HIGH ―
%A ADRS处。
%A 系统启动顺序 对于ROM-based Image和
%A ROM-Resident Image,其启动顺序如下:
%A rom Init () 一rom Start () 一sysInit ()
%A usrInit () ._+Kernellnit (usrRoot, ? ? )
%A 各函数的作用如下:
%A romInit():关闭中断, 做尽量少的硬件初始
%A 化,使C程序得以运行。
%A romStart(): 将Vxworks Image拷贝到
%A RAM 中,如果需要则进行解压缩;如果是ROMResident
%A Image, 则只拷贝Data段和BSS段。
%A sysInit():初始化系统中断, 即把所有寄存
%A 器置为已知状态, 并清除所有中断。
%A usrInit():在文件usrConfig.c中,完成系统
%A 内核运行前需要完成的所有初始化,包括初始化
%A cache、BsS段清零、初始化中断向量等。
%A Kernellnit():初始化并启动多任务内核,开
%A 中断,创建一个根任务usrRoot。
%A usrRoot(): 初始化I/O 系统,初始化系统时
%A 钟,创建设备,安装驱动,初始化网络,调用用户
%A 应用程序。
%A 驱动程序的开发 与BSP开发工具包一起发
%A 布的软件中包含了各种类型驱动程序的模板,这些
%A 模板提供了所有驱动程序共用的逻辑结构,设计驱
%A 动程序时一般应该按照从上到下的顺序。在完成对
%A 驱动程序的计划,以及初步形成了由函数和数据结
%A 构构成的骨架之后, 就可以开始准备执行和测试
%A 了。这部分工作比较复杂,主要包括编写代码,测
%A 试、调试、重新编译和性能测试等几个步骤,请读
%A 者参见参考资料l_1]。
%A 参考资料
%A 1 W ind River Systems, Inc. VxWorks BSP Developer s
%A Guide,5.5,Edition 1,DOC-14695一ND-00,U & A
%A 2002.
%A 2 Wind River Systems, Inc. VxWorks Programmer’s
%A Guide,5.5,Ed ition 1,1:)O(2-14617一ZD00,U. & A
%A 2002.
%A 3 陈翌,田 捷,王金刚.嵌入式软件开发技术.北
%A 京:国防工业出版社,2003
%A 。争‘夺 争 夺 夺 夺‘夺 夺 夺‘夺 夺‘夺’夺 夺 夺 夺 夺 夺’夺 夺
%A .
%A 矗 仑
%A 妾 降低数据采集的成本 荨
%A 立 毒
%A 羔 通过推出M系列DAQ产品,NI公司不每
%A 寸断在扩展数据采集功能的同时降低设备的成jc
%A 乏本。实际上,尽管M系列产品增强了I/O的夺
%A 功能,不过同时每个I/0通道的成本也降低jc
%A 喜了30 9/6。M系列产品采用了以前DAQ产品÷
%A 宁所不具备的NI-STC 2,NI―MCal和NI―PGIA X
%A 毒技术,它还能和NI LabVIEW 和NI―DAQmx々
%A 宁测量服务软件无缝地集成,从而具有更好的性
%A 毒能、更高的价值并提供更多的I/0。
%A . 夺.夺.夺.夺.夺.夺.夺.夺.夺.夺.夺.夺.争.争.夺.夺.夺.夺.争.{-.{-.???啼一.夺t}
%A 维普资讯
http://www.cqvip.com