1 什么是BSP:
1. 在通电后,初始化硬件(bootrom)
2. 支持VxWorks和硬件驱动通信(Image的底层驱动) 3. 本质上是硬件驱动、初始化的合集;
2 研究BSP内容:
1. 2. 3. 4. 5. 6. 7.
系统image的生成和image的种类 image的download下载过程 系统的启动顺序和过程
调试环境的配置及远端调试的方式和方法 相应BSP设置文件的修改(网络,串口..) BSP各文件的组成和作用.
要对系统底层驱动清楚,也就是对CPU及相关的硬件有所了解.主要是32微处理器(上电启动过程, download image的方式方法,读写ROM,地址空间分配,MMU,寄存器,中断定义,..).参照硬件资料,多读一些源码会有所帮助.
3 BSP主要文件目录的组成及主要文件的作用:
3.1 目录target/config/All:
这个目录下的文件是所有BSP文件共享的,不是特别需要不要更改里面的任何文件.
configAll.h:
缺省定义了所有VxWorks的设置.如果不用缺省的设置,可在BSP目录下的config.h文件中用#define或#undef方式来更改设置. bootInit.c:
在romInit.s后,完成Boot ROM的第二步初始化.程序从romInit.s中的
romInit()跳到这个文件中的romStart().来执行必要的解压和ROM image的放置.
bootConfig.c: 完成Boot ROM image的初始化和控制. usrConfig.c: VxWorks image的初始化代码.
3.2 目录target/config/comps/src:
涉及系统核心的components,主要由target/config/All中usrConfig.c中函数调用
3.3 目录target/config/bspname: 包含系统或硬件相关的BSP文件. Makefile
一些命令行控制images的生成,参见 README
BSP发布纪录,版本,总的文档 config.h
包括所有涉及CPU主板的设置及定义(includes,definations),参见 configNet.h
网络驱动的主要设置文件,主要对END驱动设置. romInit.s
汇编语言文件,是VxWorks Boot ROM和ROM based image的入口,参见 sysALib.s
汇编语言文件,程序员可以把自己的汇编函数放在这个文件里,在上层调用.VxWorks image的入口点_sysInit在这个文件里,是在RAM中执行的第一个函数. sysLib.c
包含一些系统相关的函数例程,提供了一个board-level的接口,VxWorks和应用程序可以以system-indepent的方式生成.这个文件还能包含目录target/config/comps/src的驱动. sysScsi.c
可选文件用于Scsi设备设置和初始化. sysSerial.c
可选文件用于所有的串口设置和初始化. bootrom.hex
ASIC文件包含VxWorks Boot ROM代码 VxWorks
运行在目标机上,完整的,连结后的VxWorks二进制文件. VxWorks.sym
完全的,连结后带有符号表的VxWorks二进制文件 VxWorks.st
完全的,连结后,standalone,带有符号表的VxWorks二进制文件 4 VxWorks Image
4.1 VxWorks images consist of:
Text segment---executable instruction.
? Data segment---Initilized global and static varibles. ? BSS.
?
4.2 分类和工作机理:
Bootrom不是VxWorks Image,不参与讨论它本质上是一段Boot program,最少的系统初始化,主要用于启动装载VxWorks image.一般有压缩和不压缩两种形式,如bootrom和boot_uncmp.与VxWorks image的区别在于一个Bootrom调用bootConfig.c,而VxWorks调用usrConfig.c. VxWorks 本质上分为两大类: 1. Vxworks分为两大类:
1) Uploaded images(通过网口、串口、硬盘、软盘、DOC、ROM中
加载到RAM中执行的)
vxWorks - basic Tornado, shell 和 symbol table 在主机端
vxWorks.st(文件很大)- 独立的 image,包含shell和 symbol table在目标板运行
2) ROM based images(直接烧入ROM的VxWorks):
VxWorks_Rom类的Vxworks又分了两类:1)驻留的resident 2)不住留的
1. 不住留的 ROM – Based VxWorks Image 2. 驻留的VxWorks_rom_resident
2. 说的再具体点:
1) 可下载的Vxworks image 2) ROM中烧制的Image
1. vxWorks_rom - Tornado in ROM,非压缩, 在 RAM 中运行
2. vxWorks.res_rom_nosym - Tornado in ROM, 非压缩,在 ROM 中