在VMWare上安裝VxWorks實時操作系統

admin @ 2014-03-25 , reply:0

0 概述
    VxWorks是風河公司(Windriver)開發的實時操作系統之一,以其優秀的可靠性、實時性及內核的可裁減性,被廣泛應用於通信、軍事、航天、航空等關鍵行業領域。VxWorks可以適用於多種硬體體系結構,其中也包括大家日常都可以接觸到的PC體系結構。

    VMWare 是被廣泛應用虛擬PC系統軟體,他可以提供基於Inetl CPU的虛擬PC系統環境,包括CPU、BIOS、硬碟和其他外圍硬體設備,使您可以在一台PC機上同時運行兩個操作系統。VMWare對外圍硬體設備的模擬,屏蔽了不同設備型號的差異,在硬體環境發生改變時(硬體型號變化),對於運行於VMWare上的操作系統影響很小(無須安裝新的驅動程序)。

    本文以下部分將介紹如何在VMWare軟體提供的虛擬環境上安裝VxWorks操作系統。由於可以在同一台PC機上建立完整VxWorks開發環境,所以可以有效地降低項目初期的開發成本,也可以為初學者提供一個接近於真實的模擬環境。

    需要注意的是,由於VMWare本身是運行在Windows操作系統之上的,而VxWorks運行於VMWare之上,所以這個模擬環境無法保證VxWorks的實時特性。

1 準備工作
1.1 我們假設您有一台普通配置的PC機,並安裝了WindowsXP操作系統。其次您需要安裝Tornado 2.2 for pcPentium+BSP開發環境。pcPentium的BSP組件可以從風河公司(Windriver)的網站免費下載。我們將在下文以WIND_BASE引用Tornado的安裝路徑。

1.2 其次是要安裝VMWare軟體,這裡我們使用5.5的版本。如果您還沒有該軟體,也可以從VMWare的網站下載試用版。

1.3 最後,由於Tornado自帶的PC-NET網卡驅動有問題,所以需要下載AMD的PC-NET網卡的VxWorks系統驅動,可以從AMD網站免費下載。

1.4 一張 1.44M的軟盤,用於製作系統引導盤。

準備並安裝好以上軟體后,就可以開始下一步的工作了。

2 開始安裝
2.1編譯網卡驅動程序
    VMWare為運行於其上的操作系統提供虛擬網卡支持,該網卡類型即為AMD的PC-NET。實際上,在Tornado開發包中已經包含了該類型網卡的驅動程序,但經過測試,對於VMWare無法正常工作,所以您需要從AMD的網站下載最新的驅動程序。

    下載得到的是一個可執行的安裝程序,運行該程序將得到一個壓縮包和一個幫助文件,按照該幫助的要求,將壓縮包直接釋放到Tornado目錄下。如果提示是否允許覆蓋文件,則選擇允許。

此後按如下步驟完成驅動程序的編譯和替換:

  •  打開一個控制台窗口(DOS窗口),運行批處理程序:$(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
    將我們剛剛創建的新模塊添加進去。到此有關網卡驅動的設置就完成了。

2.2修改配置文件
    在這一節中,我們要修改編譯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,這樣就可以了。最後別忘了保存。

到此為止,全部的修改工作都完成了,下一步就可以開始編譯連接了。

3 編譯程序
這一節我們要編譯生成bootrom引導程序和VxWorks運行映象。

3.1編譯生成bootrom引導程序
    * 打開您的Tornado開發工具,在Build菜單下選擇Build Boot ROM,彈出如下對話框:
 
在BSP列表中選擇pcPentium,而在Image to build列表中分別選擇bootrom和gnu。完成選擇后,點擊OK按鈕就開始引導程序的編譯了。編譯產生的文件bootrom將保存在$(WIND_BASE)\target\config\pcPentium目錄下。

3.2創建一個VxWorks映象(image),也就是VxWorks操作系統本身的代碼。
    * 創建一個“bootable VxWorks image”的工程;
    * 選擇您需要的VxWorks組件。這一步是可選的,如果您只想使用預設的配置,那根本就不需要這一步;但如果您想使用額外的組件,例如,您可能想通過telnet連接VxWorks系統,這時就需要在Workspace窗口的VxWorks選項卡中選擇telnet sever對應的組件,如下圖:
 
在這個例子中我們選擇了兩個重要的組件:Telnet server 和 Target shell 。前者使我們可以通過Telnet協議登錄到VxWorks操作系統中;後者則可以讓我們通過命令行控制VxWorks系統。
    完成選擇后,點擊Build即可開始編譯程序;生成的 VxWorks映象在$(WIND_BASE)\target\proj\Project1\default
    * 到此我們已經生成了VxWorks的系統引導程序和運行時的代碼映象。這裡還要提醒讀者,在您每次修改完系統的配置信息(如:config.h)后,都要重新創建一個工程來編譯VxWorks映象,以免出現代碼不一致的問題。
    * 將生成的名為“vxworks”的文件複製到D盤根目錄下。這個路徑是由上面我們所設置的DEFAULT_BOOT_LINE宏中的路徑參數決定的,必須保持二者一致。

4製作引導盤
現在開始製作VxWorks系統引導磁碟,用於引導裝載VxWorks運行映象。

    * 打開一個控制台窗口(DOS窗口),運行批處理程序:$(WIND_BASE)\host\x86-win32\bin\ torVars.bat;
    * 重新定位到$(WIND_BASE)\target\config\pcPentium目錄,插入您已經格式化好的軟盤,然後運行:

mkboot a: bootrom

該命令將在軟盤上建立VxWorks系統引導分區,並將引導程序複製到軟盤上。

如果計算機上沒有軟碟機可以裝一個虛擬軟盤的工具:RamDiskNT,它可以在內存中建立一個虛擬的軟盤,對於提高VxWorks的啟動速度有很大幫助

5配置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伺服器就處於運行狀態)。



[admin via 研發互助社區 ] 在VMWare上安裝VxWorks實時操作系統已經有2466次圍觀

http://cocdig.com/docs/show-post-42334.html