1 简介
Boost项目提供了一组全面的,经过同行评审的,可移植的C++源代码库,这些库可与C++标准库一起很好地工作。
VxWorks是由Wind River构建的实时操作系统。
VxWorks支持Boost C++库的子集。支持的库是:
- Atomic
- Chrono
- Container
- Context
- Contract
- Date Time
- Exception
- Filesystem
- Graph
- Log
- Math
- Program Options
- Random
- Regex
- Serialization
- Timer
- Type Erasure
- BOOST Tests
该文章描述了如何使用Boost配置VxWorks,然后如何使用动态测试脚本来验证Math库是否运行正常,使用工作站上的Boost b2实用程序来验证目标操作。
注意: 由于我们将运行最初是针对Linux工作站而非Windows工作站的测试套件,因此建议你在Windows工作站上安装Git bash,它是与Windows Git一起安装的。
2 前提
本文的说明假定你正在使用:
- Windows工作站,其上安装了以下软件:
- 风河VxWorks 7,SR0620
- Windows版Git
3 相关文件
有关本主题的更多信息,请参考:
风河文档:
- VxWorks对第三方软件的支持
非风河文档:
- https://www.boost.org/
- https://git-scm.com/download/win
4 准备启用Boost的VxWorks项目
4.1 创建和编译包括数学库的Boost VxWorks源代码编译(VSB)项目
打开Windows命令shell窗口,配置编译环境,然后将Boost Math库添加到新创建的VxWorks源码编译(VSB)项目中:
cd // your installation directory
wrenv -p vxworks-7
cd // your workspace
vxprj vsb create boostvsb -bsp vxsim_windows -force
cd boostvsb // your VSB directory
vxprj vsb add BOOST // add the Boost layer to the VSB
// enable only the Boost math library
vxprj vsb config -s -add "_WRS_CONFIG_BOOST_MATH=y"
// set a default filepath mapping
vxprj vsb config -s -add "_WRS_CONFIG_BOOST_HOST_FILEPATH_MAPPING_PREFIX=wruserfedora:"
make -j 32 // build the VSB
如果你希望启用其他Boost库,则可以根据需要在VSB配置中分别启用这些库。当包含Boost库时,VSB的编译时间将大大延长。
4.2 创建和编译包含Boost测试基础架构的Boost VxWorks映像项目(VIP)
可以像下面一样来创建VxWorks镜像项目(VIP)
cd ..
vxprj create vxsim_windows boostvip -vsb boostvsb
cd boostvip
vxprj vip component add INCLUDE_IPTELNETS
// enable the VxWorks time slicing scheduler to allow fair-scheduling Boost tests to pass
vxprj vip component add INCLUDE_PX_SCHED_DEF_POLICIES
vxprj vip component add INCLUDE_POSIX_PIPES
vxprj vip component add INCLUDE_IPDHCPC
vxprj vip parameter set DHCPC_REQ_OPTS "\"3"\"
vxprj component add
vxprj build
5 设置BOOST测试环境
5.1 启动VxSim网络守护程序和VxWorks Simulator目标
打开一个新的Windows命令行窗口:
cd // your installation directory
wrenv -p vxworks-7
cd // your workspace
vxsimnetd -sv // launch the simulator network daemon
// launch the VxWorks simulator
vxsim -netif simnet0=192.168.200.1 -f boostvip\default\vxWorks
VxWorks仿真器内核shell将在新窗口中出现。
5.2 启动Boost Math Library测试环境
从相同的Windows命令行窗口进行如下操作:
cd boostvsb\3pp\BOOST\boost_1_72_0
set BOOST_TELNET_ADDR=192.168.200.1
vxworks_env.sh
build_run_tests.sh --limit-tests=math
build_run_tests.sh bootst测试脚本将使用Windows工作站上运行的b2实用程序在VxWorks模拟器上运行boostAPI测试。测试将在VxWorks模拟器的目标上动态运行,并且测试输出将显示在单独的bash shell窗口中,生成一些warning信息是预料中的。