1.1.应用系统配置
运行在目标板上的系统映象是个二进制模块。大多数情况下,用户会发现系统映象占用空间较大。然而,用户可根据需要裁剪系统配置,降低系统占用资源。
下面针对配置系统映象从以下几方面进行说明:
? VxWorks板级支持包(BSP).
? VxWorks配置文件、可选项、参数.
? VxWorks某些可选择配置.
1.1.1.板级支持包BSP
Tornado目录下config/bspname包含板级支持包BSP,它由运行VxWorks的某些硬件驱动文件组成,如有串行线的VME板、时钟和其它设备。文件包括:Makefile, sysLib.c,sysSerial.c,sysALib.s,romInit.s,bspname.h,and config.h.
文件sysLib.c以硬件独立方式提供VxWorks和应用程序间的板级联系,包括:
? 初始化函数
- 初始化硬件到一已知状态
- 标识系统
- 初始化设备,如SCSI或常规设备
? 内存/地址空间函数
- 得到板上内存大小
- 总线地址空间
- 设定/获得非易失性RAM
- 定义板的内存位图(可选)
- 为有MMU的处理器定义虚拟内存到物理内存的映射
? 总线中断函数
- 打开/关闭总线中断
- 产生总线中断
? 时钟/定时器函数
- 使能/不能定时中断
- 设置定时器的周期性
? 邮箱/位置监视函数(可选)
- 使邮箱/位置监视中断能
在目录config/all 的配置文件usrConfig.c和bootConfig.c负责启动库函数。设备驱动可调用内存和总线管理函数。
1.1.1.1.虚拟内存
对于支持MMU的单板,数据结构sysPhysMemDesc用来定义虚拟内存到物理内存的映射。该数据一般定义在sysLib.c中,也有的在一单独的文件memDesc.c中。它以数据结构PHYS_MEM_DESC的数组存在。sysPhysMemDesc数组记录用户的系统配置。
1.1.1.2.串行设备
文件sysSerial.c提供对目标板串口的初始化。实际的串口I/O设备在目录src/drv/sio下。ttyDrv库使用串口I/O设备提供VxWorks的终端操作。
1.1.1.3.初始化模块
romInit.s包括汇编级初始化程序,sysALib.s包含初始部分和具体系统的汇编级程序。
1.1.2.4配置VxWorks
VxWorks的配置头文件为config/all/configAll.h和config/bspname/config.h.当运行配置VxWorks的初始化时,这些文件被程序usrConfig.c\bootConfig.c\bootInit.c调用。在开发环境中,用户可能要测试几种不同的配置,或者用户想在不同情况下指明不同的目标代码。为了编译VxWorks满足不同情况,用户必须调整使用环境。
用户Tornado环境包括三部分:主机代码、目标代码和配置文件。缺省配置文件为:
Host code $WIND_BASE/host/hosttype/bin
Target code TGT_DIR=$WIND_BASE/target
Configuration code
CONFIG_ALL = TGT_DIR/config/all
用户可修改通用配置文件configAll.h和具体的目标板配置文件config.h。许多可选特性和设备驱动用户在文件config/all/usrConfig.c模块中可按需调整。
宏 选择
INCLUDE_ADA Ada支持
INCLUDE_ANSI_XXX 各种ANSI C函数库选择
INCLUDE_BOOTP BOOTP支持
INCLUDE_CACHE_SUPPORT 缓冲支持
INCLUDE_CPLUS C++支持
INCLUDE_CPLUS_XXX 各种C++支持
INCLUDE_DEMO 使用简单的demo程序
INCLUDE_FTP_SERVER FTP服务器支持
INCLUDE_HW_FP 硬件浮点支持
INLCUDE_LOADER 驻留目标机目标模块加载包
INCLUDE_LOGGING 注册工具
INCLUDE_MMU_BASIC MMU支持
INCLUDE_MSG_Q 消息队列支持
INCLUDE_NETWORK 网络支持
INCLUDE_POSIX_XXX 各种POSIX选择
INCLUDE_RLOGIN 用rlogin远端注册
INCLUDE_RPC 远程过程调用
INCLUDE_SEM_BINARY 二进制信号量
INCLUDE_SEM_COUNTING 计数信号量
INCLUDE_SEM_MUTEX 互斥信号量
INCLUDE_SHELL C语言解释器
INCLUDE_SPY 任务活动监视器
INCLUDE_WATCHDOGS 看门狗
INCLUDE_WDB 目标机代理