基于VxWorks的BSP技术分析

发布者:a407895356最新更新时间:2012-06-01 来源: 微计算机信息 关键字:嵌入式操作系统  VxWorks  Tornado  板级支持包 手机看文章 扫描二维码
随时随地手机看文章

VxWorks是由美国Wind River 公司推出的一种强嵌入式实时操作系统(RTOS)。它采用微内核结构,具有高可靠性、实时性、可裁减性等特点,而且支持多种CPU。VxWorks的一个重要特点是它的可移植性,应用程序编码在很大程度上与目标板的硬件和结构无关。它把所有特定的硬件功能都集成在一个称之为板级支持包BSP(Board Support Package)的库中。

目前为止Wind River公司提供的基于某一CPU 评估板的BSP 超过200个,当用户开发自己目标板的BSP时,比较简单的方法是从所提供的BSP中选一个最接近的来修改。这里提到的BSP的设计就是指这种板级的对依赖于硬件的源代码做必要的修改、增加或删除,以满足特定的硬件环境。

1  BSP的概念

BSP(Board Support Package,——板级支持包)是介于底层硬件和上层软件之间的底层软件开发包,这源于嵌入式操作系统与硬件无关的设计思想。如今的各种嵌入式系统,都采用了分层的设计方法。它将系统中与硬件直接相关的一层软件独立出来,称之为板级支持包(BSP)。这里BSP的主要功能为屏蔽硬件,提供操作系统的驱动及硬件驱动,具体功能包括:

(1)目标板硬件初始化,主要是CPU的初始化,为整个系统提供底层硬件支持;

(2)为操作系统提供设备驱动程序和系统中断服务程序;

(3)定制操作系统的功能,为软件系统提供一个实时多任务的运行环境;

(4)初始化操作系统,为操作系统的正常运行做好准备;无线SOC开发平台499元 S3C44B0 ARM7开发板378元 S3C2410 ARM9开发板780元 AT91SAM7S64 ARM7 单片机开发板之王——ELITE-I单片机学习开发系统1200元 S3C2410 ARM9开发板(II) 950元 EPM1270T144C CPLD开发板  480元
2  BSP文件组成及功能

BSP中包括源代码、头文件、MAKE文件、派生文件以及二进制驱动程序模块。在VxWorks 中硬件驱动程序分为通用性和BSP专用性两类。在开发BSP时,既要对BSP专用的驱动程序提供支持,还要将通用的设备驱动程序集成在一起。因此,编写的设备驱动程序,可根据具体情况放在BSP中的合适位置。

BSP文件在 VxWorks /target /config /all和VxWorks /target /config / bspname文件夹里。其中,all文件夹里的文件是所有BSP的通用文件,bspname文件夹的文件是用户自己定制的BSP文件[1]。经过编译、链接,并在makefile和depend.bspname等文件的控制下,原程序最后将生成镜像。BSP的组成及主要文件功能如下。

(1)Tornado\target\config\all\目录下的文件。包括 bootConfig.c,bootInit.c,usrConfig.c等,它们是所有BSP共享的,主要是缺省定义了所有VxWorks配置以及 Boot Rom的初始化控制代码,所以不是特别需要不要更改里面的任何文件。

(2)Tornado\target\config\bspname\目录下的文件。包括 makefile,depend.bspname,config.h,bspname.h,romInit.s,sysALib.s,sysLib.c,sysSerial.c 等,其中config.h中包含特定CPU板的所有包含文件和定义。

VxWorks支持多种处理器平台,用户可以针对不同的目标系统,通过修改这些文件来完成BSP与 VxWorks在不同平台上的移植。

3  Vxworks映像分类及其启动过程

3.1 VxWorks映像及其分类

VxWorks在启动过程中涉及到两个映像文件:bootrom映像和VxWorks映像。这两个映像文件都要使用BSP代码。bootrom文件是从ROM引导VxWorks的引导目标模块,用于对目标板进行初始化,加载VxWorks操作系统映像。VxWorks image包含VxWorks OS,最终运行于目标板上。VxWorks映像按加载类型可分为:可下载映像和可引导映像;按运行方式分为在ROM中和在RAM中两种。

可下载映像(Loadable Image),它实际包括两部分,一是VxWorks,二是boot ROM,两部分是独立创建的。可引导映像(Bootable Image)是将引导程序和VxWorks融为一体的映像,一般为最终产品,包括不驻留ROM的映像和驻留ROM的映像两种类型[2]。[page]

VxWorks在ROM中运行,只要把VxWorks image的data段复制到RAM的RAM-LOW-ADRS,text部分留在ROM并在ROM执行。在ROM中运行VxWorks可以节省RAM空间,有利于应用程序有更大的空间运行,但是运行速度相对较慢。VxWorks在RAM中运行,写入ROM中的boot或VxWorks image是压缩的,需先解压并复制所有的text或data到RAM的RAM-LOW-ADRS,在RAM中运行。

 

图1 VxWorks加载映象启动顺序

3.2 VxWorks映像的启动流程

VxWorks应用系统的启动顺序,一般是先加载BootRom; BootRom再加载VxWorks应用,并跳转到VxWorks的入口SysInit执行。SysInit()复位CPU,执行最少而必要的硬件初始化,转而调用UserInit(),完成内核启动之前的初始化。UserInit()调用子程序激活VxWorks内核。首先子程序 SysHWInit()将硬件置于初始的安全状态,然后子程序 KernelInit()激活VxWorks内核,生成多任务环境,并产生一个任务来安装驱动程序以及创建设备、初始化VxWorks 库、调用应用程序启动代码,而用来生成这个任务的子程序是UserRoot()。可见,通用的设备驱动程序应该位于UserRoot()中,而 BSP专用的设备驱动程序则位于子程序SysHWInit()中。整个启动过程完成后,系统进入多任务环境运行[3]。VxWorks可加载映像的启动顺序如图1所示。

基于PC486BSP设计过程及应用程序加载

4.1 BSP设计过程

BSP开发处于整个嵌入式开发的前期,是后面系统上应用程序能够正常运行的保证。大体上,BSP的设计与开发可以分为以下几个步骤:

(1)建立开发环境。安装 VxWorks 集成开发环境 Tornado,采用宿主机目标机交叉开发。

(2)选择合适的BSP模板。一个合适相近的BSP模板可以大大减少开发周期。

(3)bootrom的运行。修改、添加WIND内核激活前的初始化代码。

(4)VxWorks的配置。修改或添加所需要组件及驱动程序,激活内核,实现基本的操作系统功能。

(5)测试与验证。正确实现bootrom及VxWorks的下载,根据不同需要,进行修改与测试。

结合实际中的工程,针对单串口的pc486目标机,在串口通信方式下,如何生成BSP及VxWorks系统的启动流程做一简单介绍。VxWorks主机工具与目标记交互关系如图2所示。

图2 VxWorks主机工具与目标机交互关系

(1)建立所需目录。

在c:\Tornado\target\config\中建立子目录all486,srl486,拷贝c:\Tornado\target \config\all中的全部文件到子目录all486中,拷贝c:\Tornado\target\config\pc486中的全部文件到子目录 srl486中以便修改且不影响其他人的使用。

(2)修改makefile。

修改或添加以下语句:

TARGET_DIR =srl486,TARGET_DIR为bsp目录名,将其指向要修改的bsp目录。

CONFIG_ALL=..\all486,将缺省ALL的文件复制到all486目录,在all486目录下做自己的修改。

正确理解四个地址的含义,如下:

ROM_BASE_ADRS: rom的起始地址。

ROM_TEXT_ADRS: rom映象的起始地址。

ROM_SIZE: rom的大小。

RAM_HIGH_ADRS: VxWorks应用在存储器低端定位开始的地址。

上述地址根据目标机实际的硬件情况进行设置,在config.h,makefile和makefile.*文件中都要定义,且大小必须要保持一致。Makefile中的上述地址不以0X开头,与config.h中有所区别。

(3)修改config.h。这里config.h修改包括:

#define DEFAULT_BOOT_LINE \

"tsfs(0,0)host:vxWorks h=192.168.0.66 e=192.168.0.98 u=target"

#if TRUE

#define INCLUDE_PC_CONSOLE

#endif[page]

#undef   WDB_TTY_DEV_NAME

#define  WDB_TTY_DEV_NAME "/tyCo/0"

#undef   CONSOLE_TTY

#define  CONSOLE_TTY  NONE

#undef   WDB_TTY_CHANNEL

#define  WDB_TTY_CHANNEL  0

#undef   WDB_COMM_TYPE

#define  WDB_COMM_TYPE   WDB_COMM_SERIAL

#undef   WDB_TTY_BAUD

#define  WDB_TTY_BAUD 38400

#define  INCLUDE_TSFS_BOOT

#undef   INCLUDE_WDB_TSFS

#define  INCLUDE_WDB_TSFS

同时屏蔽掉与网络相关的组件。

(4)生成bootrom和VxWorks映像。在生成bootrom时,可在Tornado的集成环境下Build菜单中选择Build Boot ROM来创建指定类型的Boot ROM。在生成VxWorks映像时,可在Tornado的集成环境下Build菜单中选择standard BSP Builds来生成VxWorks映像。此外,也可以在命令行环境下利用Makefile创建各种映像类型。

根据bootCongfig.c中的说明,我们的在config.h中的设置使能了虚拟控制台,所以bootrom启动后,我们在Tornado开发环境中,通过选中configure target server的target server property中的console and redirection项,启动虚拟控制台。这样在虚拟控制台可以看到启动信息,且按下 “@” 之后开始加载 VxWorks image。

4.2基于VxWorks的应用程序的加载

应用程序运行于VxWorks操作系统上。对于已存在的应用程序,VxWorks主要通过两种方式添加。一类是可下载的应用程序;一类是可启动的应用程序。

一个可下载的应用程序包含一个或多个目标对象模块,这些模块可以下载和动态链接到VxWorks,并从shell或调试器中启动[4]。即允许目标模块装载到一个运行的系统中。通过创建一个可下载的工程,构建该工程,使用适当的映像启动目标。下载工程所产生的部分链接和变换的.out文件。

一个可启动的应用程序包含一个链接到VxWorks映像的应用程序[4]。目标机启动时,可启动的应用程序开始运行。通过创建一个可启动的工程添加应用程序文件,然后编辑VxWorks初始化文件usrAppInit.c,为应用程序的初始化和启动工程添加调用。

结束语

VxWorks以其良好的性能和持续发展能力在各种高精尖技术及实时性要求极高的领域得到了越来越广泛的应用,同时希望能将其移植到更多的硬件平台上。本文对基于VxWorks的BSP进行了分析,并在实际工程中得到了实现。但是针对不通的CPU板,BSP的实现不同,需根据具体的硬件板进行具体设计,这是嵌入式设计的难点所在。

本文作者创新点:在运用BSP技术解决VxWorks移植的过程中,提出了串口通信以及其相应的应用程序的加载方法。

参考文献:

[1] WindRiver System Inc. VxWorks BSP Developer’s Guide 5.5[M].2002.

[2] 王学龙.嵌入式VxWorks系统开发与应用[M].北京:人民邮电出版社,2003.

[3] 陈智育.VxWorks程序开发实践[M].北京: 人民邮电出版社,2004.

[4] WindRiver System Inc. Tornado User’s Guide 2.2[M].2003.

[5] 孙建恒.嵌入式系统应用研究及实例[J].微计算机信息,2004,20(6):65-66

关键字:嵌入式操作系统  VxWorks  Tornado  板级支持包 引用地址:基于VxWorks的BSP技术分析

上一篇:领略Linux操作系统魅力:TiVo 揭秘
下一篇:基于WinCE的II2C驱动程序设计

推荐阅读最新更新时间:2024-05-02 22:05

海克斯康采用Wind River VxWorks平台开发下一代测量仪器
【新闻摘要】  由于风河在工业用领域的实时操作系统市场拥有稳固的领导地位,故能获海克斯康选为研发技术供应厂商。  风河的技术之所以能雀屏中选,主要在于具备极佳决定机制、稳定性以及安全特性。  借由针对工业用设备的“Wind River Platform for Industrial Devices”, 海克斯康得以开发出领先业界的测量设备。 全球嵌入式及移动应用软件领导厂商风河(Wind River)今日宣布,全球领先的设计、测量以及可视化技术供应商海克斯康测量集团(Hexagon Metrology),已正式采用“Wind River Platform for Industrial Devices”开发其新型三座标测量仪
[单片机]
基于VxWorks的bootrom代码改进
摘要:在Wind River公司开发的VxWorks嵌入式操作系统平台上,改进交换机产品bootrom软件的实现方式;给出实现方法和改进目的,为BSP开发人员提供一套全新的bootrom实现方案。 关键词:VxWorks bootrom BSP makefile 1 问题的提出 VxWorks是Wind River公司开发的一种嵌入式操作系统,具有强大的功能和友好的用户界面。VxWorks软件应用非常广泛,不仅应用在网络设备、家用电器当中,而且还应用在航天、导弹等高端领域。在网络设备应用领域中,通常利用VxWorks来开发bootrom代码、BSP(Boadr Support Packet)代码以及上层的网络协议代码。
[应用]
基于S3C44BOX的VxWorks BSP设计
摘要 S3C44BOX固定的中断管理模式与VxWorks的异常处理机制存在着冲突。本文分析VxWorks的异常处理机制后,提出一种解决方案,实现VxWorks在S3C44BOX上的BSP定制。该方案保留VxWorks原有的中断处理机制,从而保证VxWorks移植后的稳定性和可靠性。 关键词 VxWorks S3C44BoX BSP 中断处理机制 引 言 VxWorks是现在所有独立于处理器的实时系统中最具特色的操作系统之一。它支持的CPU包括:PowerPC、x86、MIPS、ARM等,其微内核Wind具有任务问切换时间短、中断延迟小、网络流量大等特点,是一个具有较高性能的标准嵌入式实时操作系统。此外,VxWorks操作系统还
[单片机]
实时操作系统VxWorks在跟踪雷达系统中的应用
摘要:实现跟踪雷达系统中各子系统之间的实时通讯,重点是信号处理子系统中信号处理板和网络间的实时通讯。在实时操作系统VxWorks平台下,编写PCI设备的驱动程序和网络通讯程序,以完成通讯功能。VxWorks的高可靠性和强实时性在应用中得到了充分的验证,在VxWorks平台的支持下,信号处理子系统完成了信号处理和网络之间的实时通讯。 关键词:VxWorks 跟踪雷达 PCI 网络通讯 跟踪雷达在跟踪高速目标时,需要有足够快的反应速度,这不仅对它自身的硬件系统的实时性要求较高,而且对相应软件系统的实时性要求也较高。用实时操作系统VxWorks作为跟踪雷达系统中的操作系统,可以满足软件对实时性需求。 本系统中,跟踪雷达各分机设备
[嵌入式]
基于VxWorks的多DSP系统的多任务程序设计
摘要: 多DSP信号处理板广泛地运用于工业、军事、通信和医疗等许多方面。本文介绍一种基于VxWorks实时操作系统的ADSP21160的多DSP板设计,以及该板在数字式声纳的实时信号处理系统中的应用,并介绍在VxWorks实时操作系统下的软件算法仿真和实现。 关键词: 多DSP阵列 声纳系统 VxWorks   近年来,计算机产品的应用领域越来越广,数字信号处理器的发展表现得尤为明显。DSP芯片制造商和DSP板开发商利用自身的优势不断开发出多DSP结构的产品来满足这种需求。通常的DSP设备是与嵌入式系统相结合,来实时地完成某一特定任
[嵌入式]
风河新开发软件可降低设备开发风险
设备软件优化厂商风河系统公司(Wind River)日前宣布,即日起面向需要获得安全性认证的制造商推出两款新的软件平台,分别称为VxWorks 61508平台和VxWorks DO-178B平台。借助于VxWorks 6软件组件固有的可移植性、开发工具和合作伙伴生态系统,新的VxWorks平台可帮助制造商降低安全认证产品的开发风险,同时又以更低的成本、更快的上市速度、更高的质量和更高的性能来巩固其在满足关键性业务需求方面的信心。 VxWorks 61508平台和VxWorks DO-178B平台都是基于商业级的VxWorks 6.6操作系统的基础上,专门针对严苛的IEC 61508和DO-178B认证要求而特殊设计的
[嵌入式]
基于VxWorks的飞机配电自动化主执行软件研究
先进飞机正朝着多电、全电方向发展,供电系统成为了未来飞机发展的关键。按照功能飞机供电系统分为电源系统和配电系统两大部分。先进配电系统由电源系统处理机(PSP)、电气负载管理中心(ELMC)、固态功率控制器(SSPC)和远程终端(RT)组成,实现飞机配电的智能化,其中电源系统处理机是配电系统的核心。 目前我国飞机电源系统仍采用的是集中配电方式。随着航空技术的迅速发展,飞机性能有了大幅度提高,用电设备迅速增加,电源功率不断提高,这种配电方式已经不适应,而且严重影响了飞机整体性能的提高。 国外一些技术发达的国家,如美国、英国、法国等在航空航天领域已普遍使用了分布式配电和负载自动管理技术。美国最近装备部队的F-22先进飞机就采用了可
[应用]
基于BM3803MG与VxWorks的BSP的设计实现
 BM3803MG是由北京微电子技术研究所研制的、具有自主知识产权的SPARC V8构架的国产高可靠嵌入式控制器,能够稳定运行VxWorks实时操作系统,其性能高、功耗低,可应用于航空、航天等高可靠领域的32 bit抗辐射RISC芯片。本文用该款控制器以及工业级以太网芯片KSZ8851-16mll为某型号研制了系统主控板,该板采用实时操作系统VxWorks编程,并对主控板的板级支持包(BSP)进行设计,从而实现了基于以太网的高可靠和实时的数据处理。本文主要介绍主控板以太网芯片KSZ8851-16mll的VxWorks驱动设计。 1 硬件系统构成 如图1所示,硬件系统由BM30803MG、FPGA、SDRAM和以太网控制器构成硬
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved