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