Tool之源码编译

使用VIP编译VxWorks Image时,可能会遇到某些组件不可选,甚至找不到的状况
安全

这是由于IDE工具(Tornado/Workbench)没有找到相应的库文件。
风河在VxWorks中提供了不少不少组件,其中有些组件只提供了源码,主要是与connectivity、security、 management相关的组件,例如Wind River Firewall, Wind River IPsec and IKE, Wind River Mobile IP,以及上图中的CRYPTO等。要想在VxWorks中调用它们,就须要先将这些源码编译为库。还有一些组件既提供了源码,也提供了库文件,可是出于某种缘由可能须要修改源码,或者调整参数,这时候也须要从新编译源码。
微信


VxWorks 5.x
VxWorks 5.x的时候,要想编译源码,首先须要在Host系统的命令行工具里调用$(WIND_BASE)/host/$(WIND_HOST_TYPE)/bin/torVars.bat来设置VxWorks的环境变量,而后在$(TGT_DIR)/src目录下运行make命令就能够了
工具

make的参数一般包括CPU和TOOL
性能

不过在VxWorks5.x时,编译器diab仍是分开销售的,大多数用户并无安装,所以TOOL的值只能是编译器gnu了,写不写也就无所谓了。而CPU的值,取决于使用什么样的target,能够从其BSP的makefile文件中得到
学习


VxWorks 6.1-6.6
到了VxWorks 6,VxWorks提供了更多的组件。除了使用命令行,Workbench还提供User-Defined Project来为VxWorks 6.1-6.6编译源码。
优化


新建一个User-Defined Project,选择相应的VxWorks作为Target operating system
ui


而后将Project的位置设置到VxWorks所在的文件夹
spa

最重要的是,根据target的状况来填写Build command
.net

CPU的值,一样是参考target BSP的makefile文件;而这时候的TOOL,通常gnu和diab都是能够选的了,根据项目的实际需求来决定。还有几个参数命令行

  • comp-xxx表示库的做用空间,取值comp-kernel表示这是kernel的库,这也是默认值;取值comp-usr表示这是user mode的库,也就是给RTP用的

  • FEATURE_SET表示哪一种platform,须要根据实际状况来选择,例如FEATURE_SET=pne,不过通常用户都是只安装一种platform,所以这个参数就不用填写了。常见的platform有pne、pid、pad、pcd, 还有一种叫gpp,它是不包含源码的,所以也就不须要再编译了

    • Platform for Network Equipment

    • Platform for Industrial Devices

    • Platform for Automotive Devices

    • Platform for Consumer Devices

    • General Purpose Platform

  • VXBUILD表示是否配置为SMP模式,不填写就表示UP,所以填写的话,只能是VXBUILD=SMP了

  • ADDED_CFLAGS表示C的编译选项,若是想使用更多的选项,通常使用+=符号,例如ADDED_CFLAGS+=-g

  • ADDED_C++FLAGS表示C++的编译选项

  • 而要想清除已有的库,clean rule是TARGET=rclean


VxWorks 6.7-6.9
到了VxWorks 6.7,风河再也不建议使用命令行或者User-Defined Project,由于这样会破坏系统自带的库文件。而是提供了一种很是强大的工程:VxWorks Source Build Project。使用这种VSB,能够图形化的定制所需组件以及参数,而且编译获得的库会单独存放。所以,能够为不一样的CPU或BSP编译多种不一样的库。

建立VSB时,能够选择基于某种BSP或者某种CPU。基于BSP编译时,编译工具会针对BSP进行专门的优化,能够提供更好的性能和更小的代码尺寸。基于CPU编译时,获得的库能够用于支持该CPU的全部BSP。

建立VSB以后,能够根据实际需求对其进行配置。例如使能CRYPTO组件

添加FIREWALL组件

而后编译工程,不太高版本的VxWorks中包含的组件有点多,编译时间会有些长,通常会超过30分钟
VSB编译完成后,就会在VSB的目录里获得新的库文件。这时候须要建立新的VIP才能使用这些新的库文件。新建的VIP不像以前的工程是基于一个BSP的,而是要基于这个VSB工程

在新建的VIP里,就能够看到以前的CRYPTO变成可选的了,而且多出了FIREWALL组件


固然了,还有一种在VIP中不能使用某种组件的状况,那就是:没有安装(其实就是没有购买了),例如只安装了两张CD的VxWorks 5.5或者gpp的VxWorks 6.x   ^_^

这正是:
编译源码VSB,调用组件VIP。
功能众多,有取有舍;
安全可控,灵活使用。

                  我是泰山,专一VX14年!
                    欢迎关注VxWorks567,
                     一块儿学习,共同进步!


本文分享自微信公众号 - 这里只有VxWorks(VxWorks567)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索