VxWorks BSP基础

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

2013-7-10
© 2000 Wind River Systems, Inc.
BSP功能简介
1 系统加电后的硬件初始化
加电后PC指针跳到特定的存储空间位置 设置处理器 初始化内存和内存地址 禁止中断 执行附加引导代码 将VxWorks载入RAM 载入VxWorks内核
2013-7-10
© 2000 Wind River Systems, Inc.
© 2000 Wind River Systems, Inc.
2013-7-10
Loadable VxWorks image启动序列

VxWorks在RAM中运行,如果写入ROM中的 boot或VxWorks image是压缩的,需要先解压 copy所有的text和data到RAM的 LOCAL_LOW_ADRS中,系统直接跳到RAM的 首地址,运行VxWorks
2013-7-10
© 2000 Wind River Systems, Inc.

BSP主要完成:
单板硬件初始化,主要是CPU的初始化,为整个软件系 统提供底层硬件支持;
为操作系统提供设备驱动程序和系统中断服务程序;
定制操作系统的功能,为软件系统提供一个实时多任务 运行环境; 初始化操作系统,为操作系统的正常运行做好准备。
2013-7-10
© 2000 Wind River Systems, Inc.
启动列表(cont’)
2013-7-10
© 2000 Wind River Systems, Inc.
2013-7-10
© 2000 Wind River Systems, Inc.
ROM-Resident VxWorks image启动序列

系统执行图示
2013-7-10
© 2000 Wind River Systems, Inc.
ROM-Resident VxWorks image启动序列

ROM-Based VxWorks image启动序列

系统执行图示
2013-7-10
© 2000 Wind River Systems, Inc.
ROM-Based VxWorks image启动序列

系统代码空间转移图示
2013-7-10
© 2000 Wind River Systems, Inc.
2013-7-10
© 2000 Wind River Systems, Inc.



BSP概念 BSP功能 BSP构成 BSP启动序列 BSP开发 BSP部分代码
2013-7-10
© 2000 Wind River Systems, Inc.
BSP启动序列



映像类型 Loadable VxWorks image启动序列 ROM-Based VxWorks image启动序列 ROM-Resident VxWorks image启动序列 Bootrom Image 启动序列 启动列表
2013-7-10
© 2000 Wind River Systems, Inc.
BSP跟Driver区别:
BSP不等同与Driver;
操控设备(如lan控制器,串口控制器)的驱动程序可 以从一个目标机环境移到另一个目标机环境 BSP集成了许多通用设备的驱动程序,它一般是针对某 一硬件系统的整合
2013-7-10
2013-7-10
© 2000 Wind River Systems, Inc.
文件介绍
bootInit.c:定义了romStart()函数,用于bootrom 的第二阶段初始化。将bootrom从ROM拷贝到 RAM中,然后跳转sysInit()或者userInit() usrConfig.c:包含VxWorks的主要初始化代码, 其部分功能跟bootConfig.c里面的功能类似,例 如对硬件设备的初始化。
2013-7-10
© 2000 Wind River Systems, Inc.
文件介绍
romInit.s:该文件包含bootrom和rom-based vxworks Image的初始化入口汇编代码 (romInit())。目标板上电开始执行romInit,主 要完成三部份工作: 屏蔽中断,初始化CPU; 配置内存系统,通常包括关闭cache,初始化内 存控制器; 初始化堆栈指针和其它寄存器以执行C语言,然 后跳到romStart()。
2013-7-10
© 2000 Wind River Systems, Inc.
文件介绍

Config\bspname: makefile:Image的编译规则,其中定义了一些 宏,如:RAM_LOW_ADRS,RAM_HIGH_ADRS。 config.h:包含所有的头文件和与CPU相关的宏定 义,如:对Cache和MMU的配置,RAM和ROM 的定位以及大小配置,外部总线地址映射,PCI 地址宏。 configNet.h:网络驱动的主要配置文件,主要对 END驱动设置
© 2000 Wind River Systems, Inc.
BSP与VxWorks的关系
2013-7-10
© 2000 Wind River Systems, Inc.



BSP概念 BSP功能 BSP构成 BSP启动序列 BSP开发 BSP部分代码
2013-7-10
© 2000 Wind River Systems, Inc.
2013-7-10
© 2000 Wind River Systems, Inc.
映像类型




Loadable VxWorks image:是由bootrom装入 RAM中执行的VxWorks 映像 ROM-Based VxWorks image- compressed/uncompressed:烧录到ROM或 Flash里的VxWorks 映像,在RAM中运行 ROM-Resident VxWorks image:在内存资源 较少的情况下,可以让代码在Rom或Flash里面 运行,只把必要的数据段装入RAM Bootrom Image/ ROM-Resident Boot image: 引导映像
© 2000 Wind River Systems, Inc.
Bootrom Image 启动序列

系统执行图示
2013-7-10
© 2000 Wind River Systems, Inc.
启动列表
2013-Βιβλιοθήκη Baidu-10
© 2000 Wind River Systems, Inc.
启动列表(cont’)
© 2000 Wind River Systems, Inc.



BSP概念 BSP功能 BSP构成 BSP启动序列 BSP开发 BSP部分代码
2013-7-10
© 2000 Wind River Systems, Inc.
BSP功能

BSP功能简介 BSP与VxWorks的关系
VxWorks BSP Basics
2013-7-10
© 2000 Wind River Systems, Inc.



BSP概念 BSP功能 BSP构成 BSP启动序列 BSP开发 BSP部分代码
2013-7-10
© 2000 Wind River Systems, Inc.
BSP概念
2013-7-10
© 2000 Wind River Systems, Inc.
文件介绍
sysSerial.c:用于串口设置和初始化 bspname.h:包含与板子相关的宏定义。要把 src\drv下的某驱动程序移植到目标板上,必须在 bspname.h文件开始包含目录src\drv下该驱动 程序对应的头文件。 bspname.h应该定义:中断向量或中断号;I/O设 备地址;设备寄存器位的含义定义;系统时钟和 辅助时钟最大和最小时钟速率。
2013-7-10
© 2000 Wind River Systems, Inc.
文件介绍

Config\all: bootConfig.c:所有 bootrom的主要初始化与控 制文件。bootConfig.c是usrConfig.c的一个子 集。只提供完整Image中的部分功能。在集成环 境下修改工程相关的配置信息不会影响Boot Image,只有直接修改config.h, configAll.h,bootConfig.c和bootInit.c文件才会 影响到Boot Image;
2013-7-10 © 2000 Wind River Systems, Inc.
文件介绍
sysALib.s:包含目标板或系统相关的汇编语言函数, 实现了_sysInit()。是bootrom起来以后执行的第 一段代码,sysInit是loadable VxWorks映像调 用的入口,是在RAM中执行的第一个函数。 sysLib.c:包含目标板或系统相关的C语言函数, 该文件提供板级接口,通过该接口,VxWorks和 应用程序的实现与目标系统无关,sysLib.c包含 target\src\drv目录下的驱动程序子文件,驱动程 序的安装和初始化在子文件中完成。
系统代码空间转移图示
2013-7-10
© 2000 Wind River Systems, Inc.
Bootrom Image 启动序列

目标板硬件系统引导代码启动,一般bootrom都 是烧到ROM或者Flash里面,可以调到RAM里面 运行或者在ROM里面运行,只初始化必要的硬件。
2013-7-10


BSP(Board Support Packet): 是介于底层硬件和上层软件之间的底层软件开发包,它主 要用来屏蔽底层硬件,进行硬件系统的初始化并调用外 设的驱动程序接口管理系统外设。 BSP由两部分组成:初始化和驱动程序 初始化:指系统从上电复位开始直到wind kernel和 usrRoot根任务启动的这段系统的执行过程。包括寄存器 操作、直接I/O操作。 驱动程序:调用某具体硬件设备的驱动程序的接口对该 硬件初始化的过程。如串口驱动,网口驱动等。
BSP功能简介
2 提供操作系统对硬件驱动的访问
一些驱动的支持是由BSP完成的,如驱动程序中定义了中 断服务程序(ISR),BSP完成了中断服务程序与中断 向量表的挂接 一些偏移常量是由BSP定义的,但供驱动程序使用 简化了驱动程序的安装 设备的配置管理
3 屏蔽上层软件和底层硬件以及硬件驱动
2013-7-10
2013-7-10
© 2000 Wind River Systems, Inc.
ROM-Based VxWorks image启动序列

VxWorks ROM版本首先从系统上电的时候提供 的入口地址开始执行,然后系统会自动把ROM中 的版本加载到RAM中执行。
2013-7-10
© 2000 Wind River Systems, Inc.
BSP构成

BSP目录结构 BSP文件介绍
2013-7-10
© 2000 Wind River Systems, Inc.
BSP目录结构

BSP的组成文件主要包含在四个目录下: …\target\config\all:所有BSP公共使用的代码 …\target\config\comps\vxworks:基本模块描 述文件(*.cdf) …\ target\config\comps\src:操作系统模块的配 置文件(usrConfig.c使用) …\target\config\bspname:与具体目标板相关 的代码部分
2013-7-10
© 2000 Wind River Systems, Inc.
Loadable VxWorks image启动序列

系统执行图示
2013-7-10
© 2000 Wind River Systems, Inc.
Loadable VxWorks image启动序列

系统代码空间转移图示
ROM-Resident VxWorks image启动序列

VxWorks在ROM中运行,系统直接跳到ROM的首地 址,运行VxWorks。 VxWorks 在ROM中的运行是 为了节省RAM空间,以便应用程序有更大的空间运 行。只需要把VxWorks image的data和BSS复制到 RAM的LOCAL_LOW_ADRS,text留在ROM并在中 执行。缺点是运行速度慢。
相关文档
最新文档