VMware構(gòu)建VxWorks模擬仿真開發(fā)環(huán)境
VxWorks 操作系統(tǒng)是美國WindRiver公司于1983年設(shè)計(jì)開發(fā)的一種嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS),它以其良好的可靠性和卓越的實(shí)時(shí)性被廣泛地應(yīng)用在通 信、軍事、航空、航天等高精尖技術(shù)及實(shí)時(shí)性要求極高的領(lǐng)域中,如衛(wèi)星通訊、軍事演習(xí)、彈道制導(dǎo)、飛機(jī)導(dǎo)航等。在美國的 F-16、FA-18 戰(zhàn)斗機(jī)、B-2隱形轟炸機(jī)和愛國者導(dǎo)彈上,甚至連1997年4月在火星表面登陸的火星探測器上也使用到了VxWorks。VxWorks原先對中國區(qū)禁止 銷售,自解禁以來,在我們的軍事、通信、工業(yè)控制等領(lǐng)域得到了非常廣泛的應(yīng)用。
本文引用地址:http://m.butianyuan.cn/article/201609/304686.htmVxWorks 的實(shí)時(shí)性體現(xiàn)在能于限定的時(shí)間內(nèi)執(zhí)行完所規(guī)定的功能,并能在限定的時(shí)間內(nèi)對外部的異步事件作出響應(yīng)。因此,實(shí)時(shí)性系統(tǒng)主要應(yīng)用于過程控制、數(shù)據(jù)采集、通 信、多媒體信息處理等對時(shí)間敏感的場合。本文將對這個(gè)操作系統(tǒng)進(jìn)行一個(gè)入門級(jí)的、全面的介紹。為力求展示其全貌,全文共分五章:
(1)搭建VxWorks嵌入式開發(fā)環(huán)境;
(2)簡要介紹VxWorks的基本組成,內(nèi)核的基本結(jié)構(gòu);
(3)概述VxWorks板級(jí)支持包(BSP)的概念及VxWorks的啟動(dòng)過程;
(4)介紹VxWorks設(shè)備驅(qū)動(dòng)的架構(gòu)及編寫方法;
(5)指明VxWorks應(yīng)用開發(fā)的思路,任務(wù)調(diào)度及任務(wù)同步、中斷與任務(wù)的同步機(jī)制。
以上各章中將貫穿著許多實(shí)例,由于本文定位于入門級(jí)教程,所以文中的實(shí)例都將十分簡單。下面我們進(jìn)入第一章內(nèi)容的講解。
如 圖1,嵌入式系統(tǒng)的調(diào)試方法一般為通過PC(宿主機(jī))上的集成開發(fā)環(huán)境交叉編譯針對特定電路板(目標(biāo)機(jī))的程序,然后將程序通過目標(biāo)板的JTAG、串口或 網(wǎng)口等途徑下載到目標(biāo)板上運(yùn)行。因此,為了構(gòu)造一個(gè)嵌入式系統(tǒng)的學(xué)習(xí)環(huán)境,擁有一塊包含CPU、存儲(chǔ)器及I/O電路(構(gòu)造計(jì)算機(jī)系統(tǒng))的目標(biāo)電路板往往是 必要的。雖然許多集成開發(fā)環(huán)境附帶模擬軟件,但僅限于指令集的模擬,均無法模擬物理的目標(biāo)機(jī)硬件平臺(tái),因而在其上只能進(jìn)行應(yīng)用程序的象征性模擬開發(fā)。但 是,并非所有人都能擁有一塊物理的電路板。在這種情況下,我們?nèi)绾螛?gòu)造一個(gè)模擬的開發(fā)環(huán)境,其學(xué)習(xí)效果就如同擁有完全真實(shí)的電路板一樣呢?本文試圖解答此 問題,主體內(nèi)容包括四個(gè)方面:
(1) 利用VMware等軟件模擬真實(shí)的目標(biāo)機(jī);
(2) 構(gòu)建VMware虛擬PC上VxWorks BSP,建立Bootrom和OS映像;
(3) 修改Tornado相關(guān)設(shè)置,連接宿主機(jī)與目標(biāo)機(jī),建立調(diào)試通道;
(4) 寫一個(gè)簡單的應(yīng)用程序并下載到目標(biāo)系統(tǒng)運(yùn)行。
圖1 嵌入式系統(tǒng)的調(diào)試
本章工作的最終目標(biāo)為:
(1)VxWorks在VMware啟動(dòng)成功并順利運(yùn)行,如圖2;
圖2 在VMware中運(yùn)行的VxWorks
(2)可在Tornado上針對目標(biāo)板編譯程序并進(jìn)行調(diào)試,如圖3。
圖3 與目標(biāo)機(jī)建立調(diào)試通道的Tornado
1. 模擬目標(biāo)機(jī)
PC也具有目標(biāo)機(jī)的所有特點(diǎn),實(shí)際上,我們可以把PC作為嵌入式系統(tǒng)的目標(biāo)機(jī),從而構(gòu)造如圖4所示的開發(fā)模型:
圖4 PC作為目標(biāo)機(jī)
很遺憾,這種方法實(shí)際上非常麻煩,同時(shí)開動(dòng)兩臺(tái)PC進(jìn)行調(diào)試將使你和你的室友飽受折磨,既然他如此地?zé)崆杏谟螒蚝蜕暇W(wǎng)。因此,我們可以借助VMware來在本機(jī)上虛擬出另一PC。
VMware 的確是天才的作品!在同一PC上,利用VMware幾乎可以安裝所有的操作系統(tǒng),而且操作系統(tǒng)之間的切換不需要重新啟動(dòng)電腦。VM的意義是Virtual Machine,即虛擬出一個(gè)邏輯的電腦,它可以提供基于Intel CPU的虛擬PC系統(tǒng)環(huán)境,包括CPU、內(nèi)存、BIOS、硬盤和其他外圍硬件設(shè)備。
下面我們講解用VMware來建立一臺(tái)虛擬PC的步驟:
(1)下載并安裝VMware;
(2)使用VMware向?qū)Ы⒁粋€(gè)針對VxWorks的虛擬機(jī);
此步驟中注意在操作系統(tǒng)中選擇“other”,如圖5:
由 于目標(biāo)機(jī)最終通過軟盤啟動(dòng),因此要求你的電腦具有軟驅(qū)。很遺憾,當(dāng)年日常使用的軟盤如今成了古董,很少再有電腦配備軟驅(qū)。因此,我們再來制造一個(gè)假冒偽劣 產(chǎn)品,虛擬一個(gè)軟驅(qū)。又一個(gè)天才的工具軟件RamDiskNT為我們提供了這一便利,圖6演示了用RamDiskNT虛擬一個(gè)1.44M軟盤的方法。
僅僅虛擬一個(gè)軟驅(qū)是不夠的,把這個(gè)軟驅(qū)添加到我們建立的虛擬機(jī)中才算修成正果,圖7演示了添加軟驅(qū)后的虛擬機(jī)硬件設(shè)置。
圖7 包含軟驅(qū)的虛擬機(jī)
2. 構(gòu)造BSP
2.1下載和編譯網(wǎng)卡驅(qū)動(dòng)
VMware 為運(yùn)行于其上的操作系統(tǒng)提供虛擬網(wǎng)卡支持,該網(wǎng)卡類型即為AMD的PC-NET,在Tornado開發(fā)包中已經(jīng)包含了該類型網(wǎng)卡的驅(qū)動(dòng)程序,但經(jīng)過測試, 在VMware環(huán)境中該驅(qū)動(dòng)無法正常工作,所以可從AMD的網(wǎng)站上下載最新的驅(qū)動(dòng)程序。下載得到的是一個(gè)可執(zhí)行的安裝程序,運(yùn)行該程序?qū)⒌玫揭粋€(gè)壓縮包和 一個(gè)幫助文件,按照該幫助的要求,將壓縮包直接釋放到Tornado目錄下。如果提示是否允許覆蓋文件,則選擇允許。
評(píng)論