使用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源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。