WindRiver公司提供了很多基于不同硬件平臺的典型的板級支持包BSP。因此,開發基于VxWorks的實用板級支持包是盡量獲得一個與目標板硬件環境相近的參考板級支持包和相關代碼模板,再根據目標板硬件環境,完成板級支持包包含的驅動程序及設備初始化,從而完成板級支持包的開發[4]。
啟動Tornado II集成開發環境,使用工程向導創建一個可啟動工程(bootable VxWorks image)項目,選擇基于ads860的BSP。在這個工程項目里可以進行BSP的基本配置、VxWorks的基本配置、網卡配置等,結合實際電路和應用進行修改,創建用戶自己的BSP以支持特定硬件。前述bootrom程序也可由此生成。在此階段可以借助WDB調試代理和Tornado工具輔助開發,也可以選擇在線仿真器ICE輔助開發。
BSP 調試完成,編譯此工程項目為一個VxWorks內核鏡像文件*.img,在以后的應用程序調試過程中可通過Tornado的一個部件 ftp server下載。下載方法如下:
首先連接主機與目標板的網線和串口線,目標板上電后,在超級終端窗口3秒以內按回車鍵進入boot shell;否則,目標機系統會進入自動尋找并運行程序狀態。
此時啟動和配置ftp server,選擇Security菜單中的user/rights命令,添加一個用戶名如target,密碼target,設置主目錄為C:\;然后點擊Done。ftp server配置完成。
現在需要設置主機ip地址。將主機ip設為192.168.1.1,子網掩碼255.255.255.0。將調試好的VxWorks鏡像文件*.img拷貝到C:\。
最后,在主機的串口超級終端中輸入設置好的下載命令@,目標板開始從主機的ftp server下載*.img(vxworks的ram鏡像)。
下載完成,*.img文件自動運行,在超級終端窗口顯示vxworks鏡像在目標板啟動成功的信息,此時vxworks內核已經成功裝載到目標板,可以同主機的tornado(vxworks的集成開發環境)進行連接了。
3.3 在tornado中編寫和運行應用程序
當上述環境配置成功后就可以進行應用程序開發了。在tornado集成開發環境中可以開發并調試各種應用程序,添加程序并編譯成功后就可以下載到目標板上進行調試了。下面通過一個應用程序調試示例加以說明。
4 開發應用程序示例
4.1 開發并編譯程序
啟動Tornado II集成開發環境,使用工程向導創建一個可下載工程(downloadable application modules)項目project1,在創建過程中選擇工具鏈(toolchain)為PPC860gnu。在工程項目中編寫或添加應用程序源文件,如一個Hello.c文件。
#include "vxworks.h"
#include "drv/multi/ppc860Siu.h"
void root()
{
printf("hello!How are you?\n"); /*在終端輸出此信息*/
}
#define PD10 (0x0020)
#define PD09 (0x0040)
#define RUNLIGHT PD10
#define LINKLIGHT PD09
void RunLight(void)
{
int immrVal = vxImmrGet();
*PDDIR(immrVal)|=RUNLIGHT;
while(1)
{
*PDDAT(immrVal) ^=RUNLIGHT;
taskDelay(sysClkRateGet()/2);/*delay 0.5 second*/
}
}
void run()
{
taskSpawn ("RunLight", 100,0 /*switchTaskOptions*/,0x1000,
(FUNCPTR)RunLight, 0,0,0,0,0,0,0,0,0,0);
} /*通過以上函數創建并激活一個新任務,點亮系統指示燈*/
4.2 配置和運行target server
使用Tornado編譯器編譯成功后下載。下載之前首先要配置和運行target server,在菜單tool/target server/configure中,先點擊new新建一個配置如configuration1, 然后開始配置。
在target server proportion 項的“Back End”的選項中選擇wdbrpc;
在target server proportion 項的“Core File and Symbols”的選項中設置vxworks鏡像文件位置為C:\;
在target name/ip address輸入目標板的ip 地址192.168.1.254;
配置完成,點擊Launch運行;
下面可以下載和運行應用程序了。
4.3下載和運行程序
在工程上點擊右鍵,選擇download project1.out下載應用程序到目標板,然后可以在Tornado中的shell里運行應用程序了,如在shell中運行hello.c中的root函數(在shell中打印hello!How are you?)和run(目標板的run燈會閃亮)。
在每次下載調試應用程序或添加新的應用程序時都不需要把它們和vxworks內核編譯到一起,這樣節省了開發和調試時間。
5 總結
本文描述了基于嵌入式實時操作系統VxWorks的開發方法,憑借性能優良的VxWorks和高度集成的開發環境,VxWorks的應用已成為新的研究熱點。在開發過程中使用相近的BSP開發用戶自己的板級支持包,難度降低了并縮短了開發時間,使用ftp server下載VxWorks內核鏡像,使用Torndo 工具編譯、調試和下載應用程序。通過這樣的流程對應用程序的開發帶來了極大的方便,該方法已得到廣泛應用。
本文作者創新點:對基于VxWorks嵌入式操作系統在MPC8XX系列cpu上的開發過程進行了具體而實用的描述。有一定的應用價值。