VxWorks架构

给VxWorks 7添加Boost C++库支持

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信息是预料中的。