VxWorks 的BSP 组成文件主要包含在开发环境下的两个目录:
target\config\all:所有BSP 的公共部分
target\config\bspname:与目标板相关的部分
目录target\config\bspname 下包含运行VxWorks 所需要的依赖特定目标板硬件的文件,需要用户创建或修改。这部分也就是BSP 移植用户需要开发的部分。
包含以下文件:
Readme.txt:包含了BSP 发布记录;
Makefile:控制映象的生成;
config.h:包含了所有头文件和针对目标板的系统定义;
bspname.h:硬件相关的目标板寄存器,中断等的定义;
romInit.s:系统上电初始化入口代码,包含romInit();
sysALib.s、VxWorks:可下载VxWorks 映象入口,包含sysInit();
sysLib.c:系统依赖库,主要有接口设备初始化;
sysDev.c:可选文件,包含物理硬件设备驱动接口,如sysSerial.c;
target.ref:目标板有关的特殊信息描述;
configNet.h:网络配置头文件。主要包含END 网络设备驱动程序的配置。
用户得到目标板的 bsp(如Edukit44b0bsp)后,在启动Tornado 之前将其拷贝到target\config\目录下即可。在编译生成boot loader 或创建VxWorks 映象工程时,就可以在bsp 下拉选项中选用该bsp 了。
目录 target\config\all 下包含下列文件:
configAll.h:通用配置文件。设置所有VxWorks 映象的默认配置。用户在config.h 中的相同定义能够覆盖此中的设置;
bootInit.c:各种可引导映象的映象装入部分;
bootConfig.c:BSP 引导映象初始化部分(在bootInit.c 的初始化之后);
dataSegPad.s:代码段保护;
usrConfig.c、VxWorks:系统初始化代码。
这个目录下的文件是作为 VxWorks 体系结构产品的一部分提供给用户的,是所有BSP 文件共享的,不是特殊情况不建议修改里面的任何文件。若需要在开发的过程中加入一些测试程序,可以将目标文件复制到target\config\bspname 目录里,在Makefile 文件中提供一种机制允许用bspname 目录下副本代替All 目录下的文件。例如用bspname 目录下usrConfig.c 文件代替All 目录下该文件,只需要在Makefile 文件里将宏USRCONFIG 设置为usrConfig.c,即USRCONFIG = usrConfig.c。宏USRCONFIG,BOOTCONFIG,BOOTINIT,和 DATASEGPAD 分别对应文件为usrConfig.c,bootConfig.c, bootInit.c,和 dataSegPad.c。在最终BSP 开发完成后,这些文件应为未被修改的原始文件。
BSP 功能函数
BSP 包的函数大部分在sysLib.c 中实现,包括以下几类函数:
系统时钟中断相关的函数:sysClkConnect(),sysClkDisable(),sysClkEnable(),sysClkInt(),sysClkRateGet(), sysClkRateSet();
系统硬件初始化函数:sysHwInit(),sysHwInit2();
内存相关的函数:sysMemTop(),sysNvRamGet(),sysNvRamSet();
串口相关的函数:sysSerialHwInit(),sysSerialHwInit2(),sysSerialChanGet();
杂项函数:sysBspRev(),sysModel(),sysToMonitor();
其它可选函数:如:辅助时钟中断相关函数,总线相关函数等。