準(zhǔn)備工作
我們假設(shè)您有一臺(tái)普通配置的PC機(jī),并安裝了Windows2000操作系統(tǒng)。其次您需要安裝Tornado 2.2 for pcPentium開(kāi)發(fā)環(huán)境。缺省安裝的Tornado 2.2 for pcPentium可能不包括pcPentium的BSP組件,但該組件可以從風(fēng)河公司(Windriver)的網(wǎng)站免費(fèi)下載。
我們將在下文以WIND_BASE引用Tornado的安裝路徑。
其次是要安裝VMWare軟件,這里我們使用4.0的版本。如果您還沒(méi)有該軟件,也可以從VMWare的網(wǎng)站下載試用版。
最后,由于Tornado自帶的PC-NET網(wǎng)卡驅(qū)動(dòng)有問(wèn)題,所以需要下載AMD的PC-NET網(wǎng)卡的VxWorks系統(tǒng)驅(qū)動(dòng),可以從AMD網(wǎng)站免費(fèi)下載。
一張1.44M的軟盤(pán),用于制作系統(tǒng)引導(dǎo)盤(pán)。
準(zhǔn)備并安裝好以上軟件后,就可以開(kāi)始下一步的工作了。
開(kāi)始安裝
編譯網(wǎng)卡驅(qū)動(dòng)程序
VMWare為運(yùn)行于其上的操作系統(tǒng)提供虛擬網(wǎng)卡支持,該網(wǎng)卡類型即為AMD的PC-NET。實(shí)際上,在Tornado開(kāi)發(fā)包中已經(jīng)包含了該類型網(wǎng)卡的驅(qū)動(dòng)程序,但經(jīng)過(guò)測(cè)試,對(duì)于VMWare無(wú)法正常工作,所以您需要從AMD的網(wǎng)站下載最新的驅(qū)動(dòng)程序。
下載得到的是一個(gè)可執(zhí)行的安裝程序,運(yùn)行該程序?qū)⒌玫揭粋(gè)壓縮包和一個(gè)幫助文件,按照該幫助的要求,將壓縮包直接釋放到Tornado目錄下。如果提示是否允許覆蓋文件,則選擇允許。
此后按如下步驟完成驅(qū)動(dòng)程序的編譯和替換:
- 打開(kāi)一個(gè)控制臺(tái)窗口,運(yùn)行批處理程序:$(WIND_BASE)\host\x86-win32\bin\ torVars.bat;
- 重新定位到$(WIND_BASE)\target\src\drv\end目錄,運(yùn)行:
make CPU=PENTIUM tool=gnu ln97xend.o
其間會(huì)產(chǎn)生一些警告,但這不會(huì)影響我們的工作。
- 重新定位到$(WIND_BASE)\target\lib\pentium\PENTIUM\common目錄,并將上一步生成的文件ln97xend.o復(fù)制到此目錄下。備份此目錄下的文件libdrv.a;
- 運(yùn)行命令arpentium -d libdrv.a ln97xEnd.o,刪除libdrv.a中原有的ln97xEnd模塊,然后再運(yùn)行命令:
arpentium -ra iOlicomEnd.o libdrv.a ln97xEnd.o
將我們剛剛創(chuàng)建的新模塊添加進(jìn)去。
到此有關(guān)網(wǎng)卡驅(qū)動(dòng)的設(shè)置就完成了。注意不要關(guān)閉這個(gè)窗口,后面還要使用。
修改配置文件
在這一節(jié)中,我們要修改編譯VxWorks的配置頭文件Config.h中定義的一些參數(shù),使編譯出來(lái)的系統(tǒng)引導(dǎo)程序和VxWorks的映象符合我們的要求;同時(shí)還要修改sysLn97xEnd.c這個(gè)文件,以使系統(tǒng)的網(wǎng)絡(luò)功能正常運(yùn)行。
- 定位目錄到$(WIND_BASE)\target\config\pcPentium并打開(kāi)該目錄下Config.h文件;
- 我們首先要修改VxWorks的啟動(dòng)參數(shù)。先查找到定義DEFAULT_BOOT_LINE宏的地方,修改預(yù)處理?xiàng)l件CPU == PENTIUM分支下的定義如下:
#define DEFAULT_BOOT_LINE \
"lnPci(0,0)your_host_name:d:\\vxWorks h=192.168.80.169 e=192.168.80.254 u=target pw=vxworks tn=target"
其中:
- lnPci(0,0)指定了使用第0個(gè)網(wǎng)卡和第0個(gè)處理器,lnPci這個(gè)標(biāo)識(shí)會(huì)因?yàn)槭褂玫尿?qū)動(dòng)程序不同而有所不同,但這里用lnPci就可以了;
- your_host_name指定您的主機(jī)的名字,使用Windows系統(tǒng)的主機(jī)名就可以;
- d:\\vxWorks指定了VxWorks映象下載的完整路徑;
- h=192.168.80.169是主機(jī)的IP地址,就是您當(dāng)前正在使用的系統(tǒng)的IP地址;
- e=192.168.80.254是目標(biāo)機(jī)的IP地址,也就是未來(lái)VxWorks操作系統(tǒng)的IP地址,您只要任意指定一個(gè)不沖突的IP地址即可,這里我們假設(shè)您的目標(biāo)機(jī)IP地址和主機(jī)IP地址在同一個(gè)網(wǎng)段內(nèi);
- u=target指定了FTP服務(wù)器的用戶名,這個(gè)FTP就是用來(lái)下載VxWorks映象的,后面還會(huì)提到;
- pw=vxwroks是用戶名對(duì)應(yīng)的口令;
- tn=target指定目標(biāo)機(jī)的名字,任意指定即可;
您可以參考Tornado自帶的手冊(cè)以獲取更多信息;
- 下面我們要指定使用什么樣的網(wǎng)卡驅(qū)動(dòng)程序。首先查找“Network driver options”這段文字,之后您可以看到在該注釋后面定義了一系列的有關(guān)網(wǎng)卡驅(qū)動(dòng)的宏定義。注意保證INCLUDE_END和INCLUDE_LN_97X_END這兩個(gè)宏處于定義狀態(tài)(define),其他的宏都處于未定義狀態(tài)(undef);
- 缺省情況下,VxWorks系統(tǒng)是不接受外部輸入設(shè)備(如鍵盤(pán))的輸入,也不向外部輸出設(shè)備(如顯示器)輸出數(shù)據(jù)。為了便于調(diào)試,我們必須改變它的這種缺省狀態(tài)。我們查找定位宏INCLUDE_PC_CONSOLE,然后保證其處于定義狀態(tài)(define)即可;
- 到此為止,對(duì)config.h文件的修改就完成了,保存修改,然后再打開(kāi)同一目錄下的sysLn97xEnd.c文件;
- 這一步修改的目的是要使網(wǎng)卡正常工作。我們先定位到“memory-mapped IO base”這段文字,然后將其前面的參數(shù)由pciRsrc[endUnit].bar[1]修改為NONE,這樣就可以了。最后別忘了保存。
到此為止,全部的修改工作都完成了,下一步就可以開(kāi)始編譯連接了。
編譯程序
這一節(jié)我們要編譯生成bootrom引導(dǎo)程序和VxWorks運(yùn)行映象。
- 打開(kāi)您的Tornado開(kāi)發(fā)工具,在Build菜單下選擇Build Boot ROM,彈出如下對(duì)話框:

在BSP列表中選擇pcPentium,而在Image to build列表中分別選擇bootrom和gnu。完成選擇后,點(diǎn)擊OK按鈕就開(kāi)始引導(dǎo)程序的編譯了。編譯產(chǎn)生的文件bootrom將保存在$(WIND_BASE)\target\config\pcPentium目錄下。
- 編譯生成bootrom后,還要?jiǎng)?chuàng)建一個(gè)VxWorks映象(image),也就是VxWorks操作系統(tǒng)本身的代碼。
- 創(chuàng)建一個(gè)“bootable VxWorks image”的工程;
- 選擇您需要的VxWorks組件。這一步是可選的,如果您只想使用缺省的配置,那根本就不需要這一步;但如果您想使用額外的組件,例如,您可能想通過(guò)telnet連接VxWorks系統(tǒng),這時(shí)就需要在Workspace窗口的VxWorks選項(xiàng)卡中選擇telnet sever對(duì)應(yīng)的組件,如下圖:

在這個(gè)例子中我們選擇了兩個(gè)重要的組件:Telnet server 和 Target shell 。前者使我們可以通過(guò)Telnet協(xié)議登錄到VxWorks操作系統(tǒng)中;后者則可以讓我們通過(guò)命令行控制VxWorks系統(tǒng)。
- 到此我們已經(jīng)生成了VxWorks的系統(tǒng)引導(dǎo)程序和運(yùn)行時(shí)的代碼映象。這里還要提醒讀者,在您每次修改完系統(tǒng)的配置信息(如:config.h)后,都要重新創(chuàng)建一個(gè)工程來(lái)編譯VxWorks映象,以免出現(xiàn)代碼不一致的問(wèn)題。
- 將生成的名為“vxworks”的文件復(fù)制到D盤(pán)根目錄下。這個(gè)路徑是由上面我們所設(shè)置的DEFAULT_BOOT_LINE宏中的路徑參數(shù)決定的,必須保持二者一致。
制作引導(dǎo)磁盤(pán)
現(xiàn)在開(kāi)始制作VxWorks系統(tǒng)引導(dǎo)磁盤(pán),用于引導(dǎo)裝載VxWorks運(yùn)行映象。
我們回到“編譯網(wǎng)卡驅(qū)動(dòng)程序”一節(jié)中所打開(kāi)的控制臺(tái)窗口,定位目錄到$(WIND_BASE)\target\config\pcPentium,插入您已經(jīng)格式化好的軟盤(pán),然后運(yùn)行:
mkboot a: bootrom
該命令將在軟盤(pán)上建立VxWorks系統(tǒng)引導(dǎo)分區(qū),并將引導(dǎo)程序復(fù)制到軟盤(pán)上。
這里再額外向您介紹一個(gè)虛擬軟盤(pán)的工具:RamDiskNT,它可以在內(nèi)存中建立一個(gè)虛擬的軟盤(pán),對(duì)于提高VxWorks的啟動(dòng)速度有很大幫助。
配置FTP服務(wù)器
這里的FTP服務(wù)器用于在系統(tǒng)成功引導(dǎo)后,下載VxWorks的運(yùn)行時(shí)映象。我們這里使用Tornado開(kāi)發(fā)環(huán)境自帶的FTP服務(wù)器。
- 打開(kāi)Tornado FTP Server,選擇“Security”菜單下的“Users/Rights”子菜單,彈出如下對(duì)話框:

當(dāng)User Name為“target”時(shí),修改“Home Directory”為D盤(pán)根目錄(此路徑由上面的DEFAULT_BOOT_LINE參數(shù)決定),同時(shí)修改口令為“vxworks”,最后點(diǎn)擊“Done”按鈕完成修改;
- 為了便于調(diào)試,我們還要打開(kāi)FTP Server的日志功能。選擇“Logging”菜單下的“Logging Options”子菜單,彈出如下對(duì)話框,其中除了“Winsock Calls”外,讓其他選項(xiàng)全都處于開(kāi)啟狀態(tài)。
- 保持FTP Server窗口處于打開(kāi)狀態(tài)(這樣FTP服務(wù)器就處于運(yùn)行狀態(tài))。
創(chuàng)建VxWorks系統(tǒng)
- 打開(kāi)您的VMWare Workstation,在File->New菜單下選擇創(chuàng)建一個(gè)新的虛擬機(jī)(Virtual Machine),按照其向?qū)椭瓿商摂M機(jī)的配置。在選擇操作系統(tǒng)類型時(shí),選擇“Other”,其余選項(xiàng)均使用缺省值就可以了。
- 完成以上配置后,點(diǎn)擊右側(cè)窗口中的“Start this virtual machine”,系統(tǒng)即開(kāi)始引導(dǎo)運(yùn)行,如下圖所示:

在引導(dǎo)過(guò)程中,您會(huì)遇到一個(gè)7秒鐘的等待,以決定是使用缺省的引導(dǎo)參數(shù),還是手動(dòng)輸入引導(dǎo)參數(shù)。這里我們選擇前者,所以不需要做任何工作。
成功引導(dǎo)后,系統(tǒng)會(huì)自動(dòng)從FTP Server下載映象,并開(kāi)始運(yùn)行,得到如下畫(huà)面:
到此,我們已經(jīng)成功的在VMWare上安裝了VxWorks操作系統(tǒng)。
需要注意的是,上面的畫(huà)面會(huì)因?yàn)檫x擇組件的不同而略微有所不同(例如,如果您沒(méi)有選擇target shell,就不會(huì)出現(xiàn)命令行提示符),但一般不會(huì)影響后續(xù)操作。
配置聯(lián)機(jī)調(diào)試環(huán)境
裝好系統(tǒng)后,您肯定還希望將自己編寫(xiě)的應(yīng)用程序下載到目標(biāo)機(jī)進(jìn)行調(diào)試,下面我們就完成這一部分的配置工作。
打開(kāi)您的Tornado開(kāi)發(fā)環(huán)境,選擇“Tools->Target Server->Configure”菜單,彈出如下對(duì)話框:
在“Description”中任意填寫(xiě)一個(gè)名字,這里是“net00”;在“Available Back”中選擇“wdbrpc”,并在下面的IP地址框中填寫(xiě)目標(biāo)機(jī)的IP地址,這里是“192.168.80.254”(由DEFAULT_BOOT_LINE參數(shù)決定);將“Target Server Properties”下拉框更改至“Core File and Symbols”,并在“File Path”一項(xiàng)中選擇您的映象的完整路徑,這里是“D:\vxWorks”(由DEFAULT_BOOT_LINE參數(shù)決定)。
完成以上兩項(xiàng)配置,點(diǎn)擊“Launch”按鈕,就可以啟動(dòng)Target Server了。
再回到Tornado開(kāi)發(fā)環(huán)境,在工具條上的Target Server下拉框列表中選擇“192.168.80.254@your_host_name”。這時(shí)您會(huì)發(fā)現(xiàn)工具條中一些原先處于“禁用”狀態(tài)的工具按鈕,現(xiàn)在都已經(jīng)處于“激活”狀態(tài)了。
現(xiàn)在您就可以開(kāi)始聯(lián)機(jī)調(diào)試您的VxWorks應(yīng)用程序了