基于vxWorks的MPC850 BSP设计与实现(读研时的又一篇文章)

 

基于vxWorks的MPC850 BSP设计与实现

                     电气信息学院       李寒201004004

1  前言

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

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

VxWorks是专门为实时嵌入式系统设计开发的操作系统内核,为程序员提供了高效的实时多任务调度、中断管理,实时的系统资源以及实时的任务间通信。在各种CPU平台上提供了统一的编程接口和一致的运行特性,尽可能的屏蔽了不同CPU 之间的底层差异。应用程序员可以将尽可能多的精力放在应用程序本身,而不必再去关心系统资源的管理。基于VxWorks操作系统的应用程序可以在不同CPU平台上轻松移植。

VxWorks 是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统。WRS 公司组建于1981年,是一个专门从事实时操作系统开发与生产的软件公司,该公司在实时操作系统领域被世界公认为是最具有领导作用的公司。

VxWorks 是一个运行在目标机上的高性能、可裁减的嵌入式实时操作系统。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的 F-16、FA-18 战斗机、B-2 隐形轰炸机和爱国者导弹上,1997年4月在火星表面登陆的火星探路者上也使用了VxWorks。

2  BSP的介绍

2.1  BSP的概念

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

BSP即为板级支持包,是指支持一个目标板的硬件系统正常运行的与硬件密切相关的函数集合。主要包括目标系统启动时的硬件初始化例程,和目标板上控制各个硬件设备正常运行的驱动程序。还要提供VxWorks与硬件环境之间的主要接口,因此它不是普通的硬件驱动程序。如图2-1所示。

            图2-1 BSP的位置

BSP的主要职能:

1. 上电初始化硬件,支持特定的BSP硬件驱动程序和通用设备驱动;

2. 对cache的初化(在硬件环境处于静止状态前,禁止CACHE;设置CACHE模式;在wind 内核激活前使能CACHE;)

3. 初始化内存和内存地址,在激活MMU前产生地址映射;

4. 初化中断向量表,连接ISR到相应的中断向量;

5. 加载需要的VxWorks;

6. 支持VxWorks访问硬件驱动程序;

7. 在VxWorks内核初始化前,设置硬件处于确定的静止状态;

8. 激活操作系统。

开发BSP主要完成的工作:

根据目标板的硬件构成,设置各种与硬件参数有关的宏,设置内存映射表,编写和修改相应的设备驱动程序,连接中断服务程序,根据上层和系统的需要生成相应的image,创建相应的任务,并启动应用程序。

2.2 BSP的功能

一个采用分层设计方法的典型系统,其结构如如图2-2所示。

                               图2-2 结构框架图

BSP位于硬件平台与操作系统之间,用于对上层软件屏蔽各种硬件相关性。

BSP的主要功能在于配置系统硬件使其工作于正常的状态,完成硬件与软件之间的信息交互,为OS及上层应用程序提供一个与硬件无关的软件平台。因此从执行角度来说,其可以分为两大部分:

1)目标系统启动时的硬件初始化例程,只在系统启动过程中执行一次。用于

配置系统内硬件工作于指定状态。

2)目标板上控制各个硬件设备正常运行的设备驱动程序,由它来完成硬件    

与软件之间的信息交互。其在整个软件系统中随着这种交互的发生而执行。

虽然通常BSP是为OS服务的, 但实际上, BSP软件包中的部分程序对OS也并不是必须的,从这个角度,又可以将BSP划分为两部分功能,

3)提供OS运行所必须的硬件初始化例程及驱动程序,如单板最小系统BSP等。

4)为满足OS之上的应用程序的需求而提供的一些外围设备的驱动程序,

如网口,HDLC控制器Driver等,这些驱动程序一般需要应用程序通过OS层与BSP交互,当然可能还包括直接与应用程序交互的一些硬件驱动,如对各种控制信号的存取,自定义的驱动程序接口等,不经过OS层。

采用这种功能的划分,实际上也体现了BSP调试的一个策略,即先调试最小系统的BSP,然后再利用各种调试工具调试其他外围设备的驱动程序。

2.3  BSP的文件目录及功能

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

BSP文件主要位于Tornado安装之后的Target目录下,具体目录结构如图5-3所示。具体结构如下:

                         图2-3 Target目录

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共享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值