VxWorks程式設計指導-2 (轉)

worldblog發表於2007-12-15
VxWorks程式設計指導-2 (轉)[@more@]

l  支援C++開發

除了支援通常的C++ 開發庫外(包括I/O流開發庫和C++模板類庫),作為可選的WIND基礎類庫提供了VxWorks包裝類庫和來自Rogue Wave的Tools.h++類庫。

l  共享

VxMP選項提供的記憶體共享機制包括共享訊號量,訊息佇列,在不同上的任務間共享的記憶體區域。

l  虛擬記憶體(包含VxVMI選項)

VxWorks既提供了捆紮的虛擬記憶體支援,對自帶記憶體管理單元的板也可提供非捆紮的虛擬記憶體支援。具有使部分記憶體不可緩衝和只讀的功能,以及虛擬記憶體管理的集。

l  執行在目標機上的工具

在Tornado開發中,開發工具執行在主機上,參見Tornado指導。然而,執行在目標機上的工具,模組上載,模組,符號表等都可以到VxWorks的核中。

l  幫助函式庫

VxWorks提供了功能豐富的幫助函式集,包含中斷處理,定時器,訊息紀錄,記憶體分配,格式化字串,輸入字串,線性和環形緩衝區的操作,連結串列和ANSI-C函式庫。

l  統計工具

VxWorks效能統計工具包括定時一些函式來統計任務的利用率。

l  目標機

目標機代理使得Tornado開發工具VxWorks應用成為可能。

l  板支援包

VxWorks包含很多種板的板支援包。板支援包提供初始化,中斷,定時器,記憶體對映等函式

l  VxWorks模擬器和邏輯分析儀

Tornado附帶了所有主機平臺上的VxWorks模擬器和邏輯分析,VxSim模擬VxWorks目標機,用來做原型開發和搭建測試環境。WindView為模擬環境提供了先進的除錯工具。

VxSim提供了支援和執行多個模擬器的能力。WindView為所有WRS的板支援包提供了軟體邏輯分析儀

l  網路工具

VxWorks提供了對另外一個VxWorks的透明的存取機制和網路系統,MUX介面(包括多點傳送,polled-mode乙太網,zero-copy傳輸),相容的socket介面,遠端過程(RPC),SNMP(可選),網路存取(包括NFS的客戶端和NFC,以及其它的網路檔案存取工具例如RSH, , 或且TFTP),BOOTP,代理,DHCP, , OSPF (可選),和RIP。不管是松耦合的線連線或乙太網連線還是利用共享記憶體的緊耦合的底板匯流排連線,所有的VxWorks網路支援都遵照INTE。

參見VxWorks網路程式設計指導。

1.1.  多工和任務間通訊

現代實時系統都是基於相互補充的多工概念和任務間通訊概念。多工環境可以允許將一個實時應用劃分為多個獨立的任務,每個任務有自己獨立的執行線索和系統資源集。任務間通訊允許這些任務同步和協調動作。

 :namespace prefix = o ns = "urn:schemas--com::office" />

VxWorks多工核WIND使用了中斷的,基於優先順序的任務排程。它具有任務切換和中斷開銷低的特色。在VxWorks下,任何一個函式都可以作為一個任務來執行,有自己的執行場景和堆疊。控制任務的功能包括掛起,繼續,刪除,延時,改變優先順序等。

 

WIND核提供了訊號量作為基本的任務同步和互斥機制。WIND有多種訊號量,每種訊號量適合於不同的應用需求:二進位制訊號量,計數訊號量,互斥訊號量,和POSIX訊號量。所有這些型別的訊號量都是快速和高效的。這些訊號量除了被應用開發者使用,也被廣泛應用於VxWorks的高層功能開發中。

 

除了利用訊號量進行任務間通訊外,VxWorks還提供了訊息佇列,管道,套接字,和訊號。可選元件VxMP提供了共享記憶體物件作為執行在不同處理器上的任務間的通訊機制。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-993688/,如需轉載,請註明出處,否則將追究法律責任。

相關文章