VMware構(gòu)建VxWorks模擬仿真開發(fā)環(huán)境
編譯生成bootrom后,還要創(chuàng)建一個VxWorks映象(image),也就是VxWorks操作系統(tǒng)本身的代碼,步驟為:
(1) 創(chuàng)建一個“bootable VxWorks image”的工程,BSP 選擇pentium;
(2) 選擇需要的VxWorks組件
如 圖10,在這個例子中我們需要包括兩個重要的組件:Telnet server 和 Target shell。前者使我們可以通過Telnet協(xié)議登錄到VxWorks操作系統(tǒng)中;后者則可以讓我們通過命令行控制VxWorks系統(tǒng)。另外,需要把所有 C++相關(guān)的選項都包含進去。
完 成選擇后,即可開始編譯程序。到此我們已經(jīng)生成了VxWorks的系統(tǒng)引導(dǎo)程序和運行時的代碼映象。在每次修改完系統(tǒng)的配置信息(如:config.h) 后,都要重新創(chuàng)建一個工程來編譯VxWorks映象。將生成的名為“vxworks”的文件復(fù)制到D:下。這個路徑是由上面我們所設(shè)置的 DEFAULT_BOOT_LINE宏中的路徑參數(shù)決定的,必須保持二者一致。
2.4 創(chuàng)建引導(dǎo)軟盤
由于目標(biāo)機從軟盤啟動,我們需要制作VxWorks引導(dǎo)磁盤,用于引導(dǎo)VxWorks操作系統(tǒng)映象。定位到C:tornado2.2targetconfigpcPentium目錄,插入已經(jīng)格式化好的軟盤,運行:
mkboot a: bootrom
該命令將在軟盤上建立VxWorks系統(tǒng)引導(dǎo)分區(qū),并將引導(dǎo)程序復(fù)制到軟盤上。
3. 建立調(diào)試環(huán)境
3.1配置FTP服務(wù)器
宿主機上的FTP服務(wù)器用于在系統(tǒng)成功引導(dǎo)后,下載VxWorks的運行時映象,最好使用Tornado開發(fā)環(huán)境自帶的FTP服務(wù)軟件。
如 圖11,打開Tornado FTP Server,選擇“Security”菜單下的“Users/Rights”子菜單,創(chuàng)建User Name為“target”,修改“Home Directory”為“D:”(即DEFAULT_BOOT_LINE參數(shù)中所指定VxWorks映像目錄),修改用戶名為“target”,對應(yīng)密 碼為“vxworks”,點擊“Done”按鈕完成修改,F(xiàn)TP服務(wù)就啟動了。
為了便于觀察引導(dǎo)程序是否從FTP上下載了VxWorks映像,最好打開FTP Server的日志功能。選擇“Logging”菜單下的“Logging Options”子菜單,其中除了“Winsock Calls”外,讓其他選項全都處于開啟狀態(tài)。保持FTP Server窗口處于打開狀態(tài),即保證FTP服務(wù)器處于運行狀態(tài)。
虛擬機從軟盤啟動,接下來會下載服務(wù)器上的D:vxworks映像,服務(wù)器的FTP會有相關(guān)的log,如圖12:
圖12 FTP服務(wù)器
3.2 配置target server
如 圖13,打開您的Tornado開發(fā)環(huán)境,選擇“Tools->Target Server->Configure”菜單,在“Description”中任意填寫一個名字,這里是“net00”;在“Available Back”中選擇“wdbrpc”,并在下面的IP地址框中填寫目標(biāo)機的IP地址,這里是“192.168.80.254”(由 DEFAULT_BOOT_LINE參數(shù)決定);將“Target Server Properties”下拉框更改至“Core File and Symbols”,并在“File Path”一項中選擇您的映象的完整路徑,這里是“D:VxWorks”(由DEFAULT_BOOT_LINE參數(shù)決定)。
圖13 配置Target Server
完成以上兩項配置,如果目標(biāo)機已經(jīng)啟動,點擊“Launch”按鈕,就可以啟動Target Server了。
再回到Tornado開發(fā)環(huán)境,在工具條上的Target Server下拉框列表中選擇“192.168.80.169@host”。這時您會發(fā)現(xiàn)工具條中一些原先處于“禁用”狀態(tài)的工具按鈕,現(xiàn)在都已經(jīng)處于“激活”狀態(tài)了。
試一試,我們打開TShell,并運行“i”命令察看目標(biāo)機上當(dāng)前運行的任務(wù),效果如圖14:
圖14 在TShell中運行命令
4. 編寫和調(diào)試應(yīng)用程序
現(xiàn)在,編寫應(yīng)用程序的所有條件已經(jīng)完全具備了。我們來編寫一個簡單的應(yīng)用。
如圖15,建立一個名為“test”的可下載的應(yīng)用程序模塊:
圖15建立可下載的應(yīng)用程序模塊
如圖16,注意工具鏈的選擇,應(yīng)該為PENTIUMgnu:
圖16 選擇PENTIUMgnu工具鏈
這個時候工程中還一個文件都沒有,我們編寫一個簡單的程序:
以下是引用片段:
#include
void test(void)
{
int i = 0;
while(1)
{
printf (%dt,i);
i++;
if(i==10000)
{
break;
}
}
}
編譯生成了test.out,下載到目標(biāo)板,在TShell中運行test函數(shù),效果如圖17。
評論