VxWorks下BSP源文件结构

Tornado开发环境安装完成后,在target/config目录下包含由官方提供的一些BSP以及公用目录all,all目录被所有的BSP使用,具体文件介绍如下:


vxworks内核文件
文件名 说明
usrConfig.c 包含usrInit,usrRoot等函数
bootInit.c 包含romStart函数定义,负责代码从ROM拷贝到RAM中
version.c 版本信息文件,使用_DATA_和_TIME_表示映像的创建时间
dataSegPad.c 当使用vxVMI组件时,该文件中的代码确保数据和代码段使用不同的物理页面
configAll.c 定义了一系列系统默认组件和系统常量



bootrom包含文件
文件名 说明
bootConfig.c 包含usrInit,usrRoot等函数
bootInit.c 包含romStart函数定义,负责代码从ROM拷贝到RAM中
version.c 版本信息文件,使用_DATA_和_TIME_表示映像的创建时间
dataSegPad.c 当使用vxVMI组件时,该文件中的代码确保数据和代码段使用不同的物理页面
configAll.c 定义了一系列系统默认组件和系统常量

Tornado编译环境对BSP目录下的文件有特殊要求,在BSP目录下必须包含以下三个文件:
1.romInit.s
该文件定义了romInit函数,是整个系统启动的入口函数,系统上电时,执行的第一行代码是romInit函数实现的第一条语句,主要完成平台的初始化,初始化C函数调用环境(栈初始化),调用romStart函数。
【VxWorks下BSP源文件结构】2.sysALib.s
该文件定义了sysInit函数,完成的功能类似于romInit,sysALib.s文件只被下载型Vxworks内核映像使用
3.sysLib.c
该文件必须实现一些具有指定函数名和指定功能的函数.

函数名 功能
sysBspRev 返回BSP版本号和子版本号
sysClkConnect 注册系统时钟中断处理函数
sysClkDisable 禁止系统时钟中断
sysClkEnable 使能系统时钟中断
sysClkInt 系统时钟中断处理函数
sysClkRateGet 返回系统时钟中断间隔时间
sysClkRateSet 设置系统时钟中断间隔时间
sysHwInit 外围设备初始化函数,必须完成所有外围设备的基本初始化工作,不可进行中断
相关的任何操作
sysHwInit2 所有需要中断配合的外围设备二次初始化函数,完成所有涉及中断的初始化工作
sysMemTop 返回VxWorks内核可用内存的最大地址值
sysModel 返回平台CPU标识符
sysNvRamSet 获取指定NVRAM(非易失性RAM)地址处的内容
sysNvRamSet 向指定NVRAM地址处写入内容
sysSerialHwInit 串口设备初始化
sysSerialHwInit2 串口设备二次初始化,中断部分初始化
sysSerialChanGet 获取串口通道对应的SIO_CHAN结构
sysToMonitor 重新热启动
可选择实现的函数有:
函数名 功能
sysAbortInt Abort按键中断处处理函数
sysAuxClkDisable 禁止辅助时钟中断
sysAuxClkRateGet 辅助时钟间隔时间
sysPhysMemTop 返回物理内存的最大地址
除了上述必须实现的三个文件外,还需要一些可选文件:

文件名 说明
sysSerial.c 串口驱动相关的文件
sysScsi.c SCSI驱动相关代码
sysNet.c 局域网LAN驱动相关代码




    推荐阅读