準(zhǔn)備工作
我們假設(shè)您有一臺普通配置的PC機(jī),并安裝了Windows2000操作系統(tǒng)。其次您需要安裝Tornado 2.2 for pcPentium開發(fā)環(huán)境。缺省安裝的Tornado 2.2 for pcPentium可能不包括pcPentium的BSP組件,但該組件可以從風(fēng)河公司(Windriver)的網(wǎng)站免費下載。
我們將在下文以WIND_BASE引用Tornado的安裝路徑。
其次是要安裝VMWare軟件,這里我們使用4.0的版本。如果您還沒有該軟件,也可以從VMWare的網(wǎng)站下載試用版。
最后,由于Tornado自帶的PC-NET網(wǎng)卡驅(qū)動有問題,所以需要下載AMD的PC-NET網(wǎng)卡的VxWorks系統(tǒng)驅(qū)動,可以從AMD網(wǎng)站免費下載。
一張1.44M的軟盤,用于制作系統(tǒng)引導(dǎo)盤。
準(zhǔn)備并安裝好以上軟件后,就可以開始下一步的工作了。
開始安裝
編譯網(wǎng)卡驅(qū)動程序
VMWare為運行于其上的操作系統(tǒng)提供虛擬網(wǎng)卡支持,該網(wǎng)卡類型即為AMD的PC-NET。實際上,在Tornado開發(fā)包中已經(jīng)包含了該類型網(wǎng)卡的驅(qū)動程序,但經(jīng)過測試,對于VMWare無法正常工作,所以您需要從AMD的網(wǎng)站下載最新的驅(qū)動程序。
下載得到的是一個可執(zhí)行的安裝程序,運行該程序?qū)⒌玫揭粋壓縮包和一個幫助文件,按照該幫助的要求,將壓縮包直接釋放到Tornado目錄下。如果提示是否允許覆蓋文件,則選擇允許。
此后按如下步驟完成驅(qū)動程序的編譯和替換:
- 打開一個控制臺窗口,運行批處理程序:$(WIND_BASE)\host\x86-win32\bin\ torVars.bat;
- 重新定位到$(WIND_BASE)\target\src\drv\end目錄,運行:
make CPU=PENTIUM tool=gnu ln97xend.o
其間會產(chǎn)生一些警告,但這不會影響我們的工作。
- 重新定位到$(WIND_BASE)\target\lib\pentium\PENTIUM\common目錄,并將上一步生成的文件ln97xend.o復(fù)制到此目錄下。備份此目錄下的文件libdrv.a;
- 運行命令arpentium -d libdrv.a ln97xEnd.o,刪除libdrv.a中原有的ln97xEnd模塊,然后再運行命令:
arpentium -ra iOlicomEnd.o libdrv.a ln97xEnd.o
將我們剛剛創(chuàng)建的新模塊添加進(jìn)去。
到此有關(guān)網(wǎng)卡驅(qū)動的設(shè)置就完成了。注意不要關(guān)閉這個窗口,后面還要使用。
修改配置文件
在這一節(jié)中,我們要修改編譯VxWorks的配置頭文件Config.h中定義的一些參數(shù),使編譯出來的系統(tǒng)引導(dǎo)程序和VxWorks的映象符合我們的要求;同時還要修改sysLn97xEnd.c這個文件,以使系統(tǒng)的網(wǎng)絡(luò)功能正常運行。
- 定位目錄到$(WIND_BASE)\target\config\pcPentium并打開該目錄下Config.h文件;
- 我們首先要修改VxWorks的啟動參數(shù)。先查找到定義DEFAULT_BOOT_LINE宏的地方,修改預(yù)處理條件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個網(wǎng)卡和第0個處理器,lnPci這個標(biāo)識會因為使用的驅(qū)動程序不同而有所不同,但這里用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地址,也就是未來VxWorks操作系統(tǒng)的IP地址,您只要任意指定一個不沖突的IP地址即可,這里我們假設(shè)您的目標(biāo)機(jī)IP地址和主機(jī)IP地址在同一個網(wǎng)段內(nèi);
- u=target指定了FTP服務(wù)器的用戶名,這個FTP就是用來下載VxWorks映象的,后面還會提到;
- pw=vxwroks是用戶名對應(yīng)的口令;
- tn=target指定目標(biāo)機(jī)的名字,任意指定即可;
您可以參考Tornado自帶的手冊以獲取更多信息;
- 下面我們要指定使用什么樣的網(wǎng)卡驅(qū)動程序。首先查找“Network driver options”這段文字,之后您可以看到在該注釋后面定義了一系列的有關(guān)網(wǎng)卡驅(qū)動的宏定義。注意保證INCLUDE_END和INCLUDE_LN_97X_END這兩個宏處于定義狀態(tài)(define),其他的宏都處于未定義狀態(tài)(undef);
- 缺省情況下,VxWorks系統(tǒng)是不接受外部輸入設(shè)備(如鍵盤)的輸入,也不向外部輸出設(shè)備(如顯示器)輸出數(shù)據(jù)。為了便于調(diào)試,我們必須改變它的這種缺省狀態(tài)。我們查找定位宏INCLUDE_PC_CONSOLE,然后保證其處于定義狀態(tài)(define)即可;
- 到此為止,對config.h文件的修改就完成了,保存修改,然后再打開同一目錄下的sysLn97xEnd.c文件;
- 這一步修改的目的是要使網(wǎng)卡正常工作。我們先定位到“memory-mapped IO base”這段文字,然后將其前面的參數(shù)由pciRsrc[endUnit].bar[1]修改為NONE,這樣就可以了。最后別忘了保存。
到此為止,全部的修改工作都完成了,下一步就可以開始編譯連接了。
編譯程序
這一節(jié)我們要編譯生成bootrom引導(dǎo)程序和VxWorks運行映象。
- 打開您的Tornado開發(fā)工具,在Build菜單下選擇Build Boot ROM,彈出如下對話框:
在BSP列表中選擇pcPentium,而在Image to build列表中分別選擇bootrom和gnu。完成選擇后,點擊OK按鈕就開始引導(dǎo)程序的編譯了。編譯產(chǎn)生的文件bootrom將保存在$(WIND_BASE)\target\config\pcPentium目錄下。
- 編譯生成bootrom后,還要創(chuàng)建一個VxWorks映象(image),也就是VxWorks操作系統(tǒng)本身的代碼。
- 創(chuàng)建一個“bootable VxWorks image”的工程;
- 選擇您需要的VxWorks組件。這一步是可選的,如果您只想使用缺省的配置,那根本就不需要這一步;但如果您想使用額外的組件,例如,您可能想通過telnet連接VxWorks系統(tǒng),這時就需要在Workspace窗口的VxWorks選項卡中選擇telnet sever對應(yīng)的組件,如下圖:
在這個例子中我們選擇了兩個重要的組件:Telnet server 和 Target shell 。前者使我們可以通過Telnet協(xié)議登錄到VxWorks操作系統(tǒng)中;后者則可以讓我們通過命令行控制VxWorks系統(tǒng)。
- 到此我們已經(jīng)生成了VxWorks的系統(tǒng)引導(dǎo)程序和運行時的代碼映象。這里還要提醒讀者,在您每次修改完系統(tǒng)的配置信息(如:config.h)后,都要重新創(chuàng)建一個工程來編譯VxWorks映象,以免出現(xiàn)代碼不一致的問題。
- 將生成的名為“vxworks”的文件復(fù)制到D盤根目錄下。這個路徑是由上面我們所設(shè)置的DEFAULT_BOOT_LINE宏中的路徑參數(shù)決定的,必須保持二者一致。
制作引導(dǎo)磁盤
現(xiàn)在開始制作VxWorks系統(tǒng)引導(dǎo)磁盤,用于引導(dǎo)裝載VxWorks運行映象。
我們回到“編譯網(wǎng)卡驅(qū)動程序”一節(jié)中所打開的控制臺窗口,定位目錄到$(WIND_BASE)\target\config\pcPentium,插入您已經(jīng)格式化好的軟盤,然后運行:
mkboot a: bootrom
該命令將在軟盤上建立VxWorks系統(tǒng)引導(dǎo)分區(qū),并將引導(dǎo)程序復(fù)制到軟盤上。
這里再額外向您介紹一個虛擬軟盤的工具:RamDiskNT,它可以在內(nèi)存中建立一個虛擬的軟盤,對于提高VxWorks的啟動速度有很大幫助。
配置FTP服務(wù)器
這里的FTP服務(wù)器用于在系統(tǒng)成功引導(dǎo)后,下載VxWorks的運行時映象。我們這里使用Tornado開發(fā)環(huán)境自帶的FTP服務(wù)器。
- 打開Tornado FTP Server,選擇“Security”菜單下的“Users/Rights”子菜單,彈出如下對話框:
當(dāng)User Name為“target”時,修改“Home Directory”為D盤根目錄(此路徑由上面的DEFAULT_BOOT_LINE參數(shù)決定),同時修改口令為“vxworks”,最后點擊“Done”按鈕完成修改;
- 為了便于調(diào)試,我們還要打開FTP Server的日志功能。選擇“Logging”菜單下的“Logging Options”子菜單,彈出如下對話框,其中除了“Winsock Calls”外,讓其他選項全都處于開啟狀態(tài)。
- 保持FTP Server窗口處于打開狀態(tài)(這樣FTP服務(wù)器就處于運行狀態(tài))。
創(chuàng)建VxWorks系統(tǒng)
- 打開您的VMWare Workstation,在File->New菜單下選擇創(chuàng)建一個新的虛擬機(jī)(Virtual Machine),按照其向?qū)椭瓿商摂M機(jī)的配置。在選擇操作系統(tǒng)類型時,選擇“Other”,其余選項均使用缺省值就可以了。
- 完成以上配置后,點擊右側(cè)窗口中的“Start this virtual machine”,系統(tǒng)即開始引導(dǎo)運行,如下圖所示:
在引導(dǎo)過程中,您會遇到一個7秒鐘的等待,以決定是使用缺省的引導(dǎo)參數(shù),還是手動輸入引導(dǎo)參數(shù)。這里我們選擇前者,所以不需要做任何工作。
成功引導(dǎo)后,系統(tǒng)會自動從FTP Server下載映象,并開始運行,得到如下畫面:
到此,我們已經(jīng)成功的在VMWare上安裝了VxWorks操作系統(tǒng)。
需要注意的是,上面的畫面會因為選擇組件的不同而略微有所不同(例如,如果您沒有選擇target shell,就不會出現(xiàn)命令行提示符),但一般不會影響后續(xù)操作。
配置聯(lián)機(jī)調(diào)試環(huán)境
裝好系統(tǒng)后,您肯定還希望將自己編寫的應(yīng)用程序下載到目標(biāo)機(jī)進(jìn)行調(diào)試,下面我們就完成這一部分的配置工作。
打開您的Tornado開發(fā)環(huán)境,選擇“Tools->Target Server->Configure”菜單,彈出如下對話框:
在“Description”中任意填寫一個名字,這里是“net00”;在“Available Back”中選擇“wdbrpc”,并在下面的IP地址框中填寫目標(biāo)機(jī)的IP地址,這里是“192.168.80.254”(由DEFAULT_BOOT_LINE參數(shù)決定);將“Target Server Properties”下拉框更改至“Core File and Symbols”,并在“File Path”一項中選擇您的映象的完整路徑,這里是“D:\vxWorks”(由DEFAULT_BOOT_LINE參數(shù)決定)。
完成以上兩項配置,點擊“Launch”按鈕,就可以啟動Target Server了。
再回到Tornado開發(fā)環(huán)境,在工具條上的Target Server下拉框列表中選擇“192.168.80.254@your_host_name”。這時您會發(fā)現(xiàn)工具條中一些原先處于“禁用”狀態(tài)的工具按鈕,現(xiàn)在都已經(jīng)處于“激活”狀態(tài)了。
現(xiàn)在您就可以開始聯(lián)機(jī)調(diào)試您的VxWorks應(yīng)用程序了