Wind River Workbench3.3使用技巧
概述
VxWorks 6.9包括VxWorks操作系统、Wind River Workbench3.3开发环境、Wind River Diab编译器、Wind River GNU编译器,并集成了一些中间件和主机工具。
该平台有助于开发人员开发多样化的项目和应用,如VxWorks基于内核的应用(DKM)、VxWorks实时任务应用(RTP)、板级支持包、驱动等。开发人员可以通过Workbench IDE或者vxprj工具开发项目和应用,可以使用Workbench Debugger进行调试。
本文旨在介绍如何利用Wind River Workbench3.3开发工具提供的命令行支持,进行工程创建、工程配置、代码编译等基本操作。
vxprj和wrenv
Wind River Workbench3.3提供vxprj命令行工具来进行工程创建、配置和编译。
使用vxprj之前,首先需要使用installDir目录(以下如无特指,则为Wind River Workbench3.3的安装目录)的wrenv.exe配置环境变量,wrenv依赖于installDir目录的install.properties文件来配置环境变量。
% installDir/wrenv.exe -p vxworks-6.x
工程创建和代码编译
库文件工程和编译
创建VxWorks source build(VSB)工程来编译库文件,VSB工程可以基于BSP或者CPU类型来创建。为了让编译出来的库文件集成到VxWorks系统镜像中,VIP(VxWorks Image Project)需要关联VSB工程。
VxWorks提供了一些预先编译好的库文件:
路径 | 说明 |
installDir/vxworks-6.x/target/lib | |
installDir/vxworks-6.x/target/lib/usr/lib | for default user-mode builds; selected architectures only |
installDir/vxworks-6.x/target/lib_smp | for SMP-capable kernel libraries |
installDir/vxworks-6.x/target/lib_smp/usr/lib | for SMP-capable user libraries |
installDir/vxworks-6.x/target/precomp | Third-Party Binary Files |
编译流程:设置环境变量->创建VSB工程->设置内核库和用户库选项(依赖关系?)->编译源文件。
component/feature | 命令规范 | 示例 |
kernel components | COMPONENT_COMPONENT_NAME | COMPONENT_IPPPP |
user space components | COMPONENT_USR_COMPONENT_NAME |
基于BSP创建VSB时,系统自动处理模块依赖关系,但是如果BSP的CDF(Component Description File)变动时,需要重新基于BSP创建VSB。
vxprj vsb create [-force] {(-bsp bsp | bspdir) | -cpu cpuName}
[vsbfile | vsbdir] [-add option] [-remove option] [-D defFile |-S | -s]
创建过程中,会提示确认一些配置选项。
cd %vsbdir
直接编译 % make
重新编译
% make clean all
% make
重新编译
% rm rf CPU_family_name
% rm -rf test usr
% make
编译VSB工程时,会同步编译installDir/vxworks-6.x/target/src目录下的源码以及其他组件源码,编译生成的目标文件位于VSB工程的子目录,比如PPC32 VSB工程,位于vsbdir/ppc/PPC32目录下。
VxWorks镜像工程创建和编译
VxWorks镜像通过VIP(VxWorks Image Project)编译。
vxprj基于BSP创建VIP工程,32位系统命令如下:
命令格式:
vxprj create [-smp] [-profile profile] [-vsb vsbdir] BSP tool [projectFile|projectDirectory] [-debug | -debug_opt]
举例说明:
% vxprj create -profile PROFILE_DEVELOPMENT mv5100 diab /mv5100VIP
64位系统命令如下:
命令格式:
vxprj create [-smp] [-lp64] [-profile profile] [-vsb vsbdir] BSP tool [projectFile|projectDirectory] [-debug | -debug_opt]
举例说明:
% vxprj create -profile PROFILE_DEVELOPMENT idpQ35_64 gnu -lp64 /my64BitVIP
添加和删除源文件
cd %prjdir
vxprj file add [projectFile] sourceFile
vxprj file remove [projectFile] sourceFile
编译VIP
Build Specifications | Build Rules and Image Types |
default | vxWorks[.bin | .hex] |
default_rom | vxWorks_rom[.bin | .hex] |
default_romCompress | vxWorks_romCompress[.bin | .hex] |
default_romResident | vxWorks_romResident[.bin | .hex] |
查看支持的build specifications % workspace/myVip>vxprj build list default default_rom default_romCompress default_romResident 查看build specifications名称 vxprj build get [projectFile] 编译VxWorks vxprj build [projectFile] [buildSpecification|buildRule] 举例说明: % vxprj build % vxprj build myproj.wpj default_rom
VIP关联VSB
vxprj vsb set [prjfile|prjdir] [vsbfile|vsbdir|-default]
--default选项配置VIP使用默认库而不是VSB库,如32位使用target/lib或者target_lib_smp,64位使用target/lib_lp64或者target/lib_lp64_smp。
查看VIP关联了哪些VSB
命令格式: vxprj vsb info [prjfile|prjdir] 举例说明: % workspace/mv5100VIP>vxprj vsb info VSB directory is set to ./../myPpc32Vsb 如果VIP没有关联VSB,则打印关联的默认库 % workspace/mv5100VIP_3>vxprj vsb info VSB directory is set to C:/WindRiver/vxworks-6.9/target/lib
检查VIP和VSB关联是否正常
% vxprj check