在vxWorks下的BSP开发指南

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于VxWorks的BSP开发指南

1BSP概述

一个成熟的商用操作系统,其被广泛应用的必要条件之一就是能够支持众多的硬件平台,并实现应用程序的硬件无关性。一般来说,这种无关性都是由操作系统实现的。

但对于嵌入式系统来说,它没有像PC机那样具有广泛使用的各种工业标准,各种嵌入式系统其不同的应用需求就决定了它一般都选用了各自定制的硬件环境,这种诸多变化硬件的环境就决定了无法完全由操作系统来实现上层软件与底层硬件之间的无关性。

因此各种商用实时操作系统,都采用了分层设计的方法,它将系统中与硬件直接相关的一层软件独立出来,称之为Board Support Package即简称BSP。顾名思义,BSP是针对某个单板而设计的,并且它对于用户(指开发者)也是开放的,用户可以根据不同的硬件需求对其作改动或二次开发,而操作系统本身仅仅提供了CPU内核的无关性。BSP在系统中的角色,很相似于BIOS在PC系统中的地位。

定义

BSP就是为软件操作系统正常运行提供最基本、最原始的硬件操作的软件模块,它和操作系统息息相关,但又不属于操作系统的一部分。BSP可以分为三大部分:

1:系统上电时的硬件初始化。

2:为操作系统访问硬件驱动程序提供支持。

3:集成的硬件相关和硬件无关的操作系统所需的软件模块。

BSP的表现形式

BSP主要以两种形式来表现:

1:源代码(C代码、汇编代码)、系统编译连接依靠文件。

2:二进制的目标代码和目标代码库。

BSP在软件系统中的位置

BSP在软件系统中的位置可以用下图来表示,BSP为操作系统和硬件设备的

互操作建了一个桥梁,操作系统通过BSP来完成对指定硬件的配置和管理。

2 vxWorks系统中的BSP 目录结构

BSP软件与其他软件的最大区别在于BSP软件有一整套模板和格式,开发人员必须严格遵守,不允许任意发挥。在BSP软件中,绝大部分文件的文件名和所要完成的功能都是固定的。所以,BSP软件的开发一般来说都是在一个基本成型的BSP软件上进行修改,以适应不同单板的需求。

针对某类CPU的硬件单板,vxWorks通常提供有其DEMO板的BSP, 这些程序位于指定的目录之下。也就是我们所说的最小系统BSP。一般来说,我们在硬件系统设计好之后,都会先找到一个与自己系统相近的DEMO板BSP(最起码是使用相同的CPU)。并以此为基础,开发自己单板的BSP。

VxWorks BSP的目录结构:

BSP文件主要位于Tornado安装之后的Target目录下,具体目录结构如下:

• config目录:用于vxWorks核心的配置及编译的文件。其中又包含多个子目录。

all目录:通用的配置文件

comps目录:用于Tornado工程管理工具配置的源文件

bspname目录:每个单板都有一个相应目录,命名可根据单板而

定,其中包含有关此单板BSP的代码文件,目标文件及编

译文件等,这也就是我们通常所说的单板BSP。

• h目录:其中包含所有vxWorks操作系统的头文件及通用编译文件。其中的各个子目录表示了vxWorks中不同模块的头文件。

• lib目录:由vxWorks为不同平台提供的库文件及目标文件。

• src目录:vxWorks提供的部分硬件芯片驱动程序的源代码文件,其又包含多个子目录:

config目录:有关vxWorks操作系统的一些通用的源代码文件。

drv目录:vxWorks中一些硬件芯片的通用驱动程序源代码文件,

其根据不同功能的芯片分为若干个子目录,例如end 表

示网口驱动,sio表示串口驱动等

• unsupported目录:其中包含一些较古老的硬件BSP代码。

3三种不同的VxWorks映象比较

理解VxWorks映象是开发VxWorks BSP的基础。

VxWorks映象通常由三个部分组成:BSP、操作系统内核和上层应用。从文件的组织形式上可以将映象分为三段:BSS段、Data段和Text段。其中,BSS 段存放的是未初始化的全局变量或静态变量,Data段存放的是已经初始化的全局变量或静态变量,Text段存放的是可执行的代码。

根据应用场合的不同,VxWorks映象可分为三类:

Loadable images

Rom-based images

Rom-resident images

其中,Loadable images通过烧写在ROM中的Bootrom装载到RAM中来启动;Rom-based images使用自身带的启动代码把自己装载到RAM中来启动;而Rom-resident images在ROM中启动,只是把需要动态修改的Data段和BSS段装载到RAM中去。

3.1 可加载的VxWorks映象

这是一种运行于RAM的VxWorks映象。它不包含搬移程序,需要借助于一些外部的程序如bootRom才能加载到RAM的低端RAM_LOW_ADRS地址处。这是缺省的开发映象。

在开发的初期阶段,用户可以根据需要添加或删除一些VxWorks组件,生成自己的可加载的VxWorks映象,存放在开发主机的某个目录下。目标板上电后,由烧结在BOOT中的起始引导程序(BootStrap Programs)将BOOT中的ROM 引导程序(ROM Boot Programs)拷贝到RAM的高端地址RAM_HIGH_ADRS处,并跳转至该地址执行ROM引导程序,配置好所选的加载方式(缺省为网络方式),将指定的主机目录下的可加载的VxWorks映象下载到目标板的RAM地址RAM_LOW_ADRS处,并跳转到此处执行。如图1所示。

图1、可加载的VxWorks映象

相关文档
最新文档