1.組件概述 VxWorks的配置和裁剪是以組件為基本單位。組件是VxWorks相對獨立和完整的一個功能模塊,也是系統中最小的、可升級的單元,它通常不再包含子節點。 VxWorks用CDF文件來描述系統中的組件。CDF(Common Data Format)稱作通用數據格式文件,是一種用于存儲數據、訪問多維數據集的文件格式。CDF文件的后綴為.cdf,用戶可以使用CDF文件非常方便地定義系統的特征參數,描述一個組件,并將其配置到不同的系統中。 使用組件技術,使用用戶在開發過程中能夠高效構建VxWorks系統,避免傳統構造頭文件帶來的低效、復雜、易出錯等缺點。而且,Tornado 2.x的圖形配置工具和工程管理工具增強了組件相互依賴的可視性。 2.組件構成 組件實際上是一個功能部件具體實現部分的描述信息,它定義了與組件相關的源代碼或目標代碼、集成信息以及與組件相關的參數。組件包含以下元素: (1)NAME:一個可讀的名稱,在工程組件管理器中出現在組件圖標旁邊。 (2)SYNOPSIS:對組件的簡潔的描述。 (3)MODULES:與組件關聯的目標文件。 (4)HDR_FILES:使用該組件時需要用到的相關頭文件。 (5)CFG_PARAMS:與組件相關的一些配置參數,通常為一系列的宏。 3.組件描述文件的讀取順序 組件描述文件必須有.cdf后綴。所有的CDF文件名稱以兩個十進制數字開始(即00xxxx.cdf),開始的這兩個數字控制一個目錄中CDF文件讀取順序。 組件描述文件通常在工程創建時被讀取,如果兩個文件描述同一組件的同樣特征,則它將讀取后一個而不考慮以前的。優先權通常以兩種約定方式建立: (1)CDF文件存放在確定目錄下。這些目錄以如下順序讀取: $(WIND_BASE)\target\config\comps\VxWorks:包含一些通用組件; $(WIND_BASE)\target\config\comps\VxWorks\arch\arch:包含特定體系結構的組件; $(WIND_BASE)\target\config\bsp:包含特定BSP的組件; 工程目錄:包含該工程的一些特定組件。 (2)在同一目錄下,文件頭部的兩個數字決定讀取順序。 4.組件的封裝規則 Wind River公司將部分組件安裝在其傳統位置上。 (1)源碼模塊可在target/src或target/config目錄下找到。 (2)標題頭至于target/h中;目標模塊在target/lib/objARCH中。 (3)組件描述文件在target/config/comps/VxWorks中。 (4)組件配置文件(源碼片段)位于target/config/copms/src。 第三方受限于這些規定,組件元素在組件描述文件中完全給出。建議第三方把組件源和目標元素置于一個特定目錄下,如target/config/vendor_name。組件描述文件(CDF)的位置取決于組件集成在系統中的位置。 若要在一個完整系統中集成新的組件,CDF應該置于target/config/comps/VxWorks目錄下。凡是在該文件夾下的說明這些配置通用于各種BSP。 若它是一個BSP特定組件,則應該放在BSP目錄下,表示它是針對當前BSP的特殊配置。若其特別服務一個單一工程,則它放在工程目錄(target/proj/project_name)下。 第三方組件不允許覆蓋WindRiver支持的文件,但可在其自身組件描述文件中忽略Wind River的組件描述。 5.組件的可視化 Vxworks通過CDF文件為Tornado配置工具提供了BSP的配置信息。Tornado集成開發環境使用CDF文件把文件夾、組件、參數、選項文件夾等配置項構建成VxWorks系統的配置樹,通過VxWorks組件管理器界面供用戶查看和修改。 一旦我們創建了一個新的組件,那么在Tornado的VxWorks組件管理器中可以展開組件樹,找到新定義的組件,然后選擇配置或裁減。 (1)通過選擇include/exclude實現裁剪。在開發一個BSP的初期,往往需要裁減掉一些高級功能支持,先構建一個支持時鐘中斷的最小內核。調試通過后,逐步增加高級功能模塊組件支持,最后開發出一個功能相對完整的VxWorks操作系統。 (2)通過修改屬性參數(選項)實現配置。例如我們可能要到“VxWorks->hardware->memory->BSPMemory Configuration”中去修改一些內存配置相關的宏。 當然,一切都是代碼或腳本描述的,IDE只是一種可視化交互編輯環境。在Tornado運行期間,試圖去修改腳本或代碼可能不會實時同步體現到Tornado中,此時先關閉Tornado,修改完源文件再開啟Tornado重新加載,即可看到修改后的結果。在Tornado IDE中配置或裁減組件,在合適的時候(dependency or build)會反饋到源文件代碼中。 Tornado工程配置工具把收集到的用戶配置信息反饋體現到工程的相關源文件中,從而實現了VxWorks的自動配置和裁剪。組件包含開關宏(COMPONENTS INCLUDED)和宏參數(PARAMETERS)將體現在動態生成的prjParams.h和prjComps.h文件中。prjParams.h通常被config.h包含,prjComps.h將被target\config\comps\src\configAll.h包含。代碼詳情可參考《VxWorks BSP for Intel's IXDP425(ARM)》里面的target目錄。 |