VxWorks使用說(shuō)明書(1)
VxWorks操作系統(tǒng)的集成環(huán)境叫Tornado。Tornado集成環(huán)境提供了高效明晰的圖形化的實(shí)時(shí)應(yīng)用開發(fā)平臺(tái),它包括一套完整的面向嵌入式系統(tǒng)的開發(fā)和調(diào)測(cè)工具。Tornado環(huán)境采用主機(jī)-目標(biāo)機(jī)交叉開發(fā)模型,應(yīng)用程序在主機(jī)的Windows環(huán)境下編譯鏈接生成可執(zhí)行文件,下載到目標(biāo)機(jī),通過主機(jī)上的目標(biāo)服務(wù)器(Target Server)與目標(biāo)機(jī)上的目標(biāo)代理(Target Agent)的通信完成對(duì)應(yīng)用程序的調(diào)試、分析。它主要由以下幾部分組成:
VxWorks高性能的實(shí)時(shí)操作系統(tǒng);
* 應(yīng)用編譯工具;
* 交互開發(fā)工具;
下面對(duì)Tornado集成環(huán)境的各組件功能分別介紹:
* Tornado開發(fā)環(huán)境
Tornado是集成了編輯器、編譯器、調(diào)試器于一體的高度集成的窗口環(huán)境,同樣也可以從Shell窗口下發(fā)命令和瀏覽。
* WindConfig:Tornado系統(tǒng)配置
通過WindConfig可選擇需要的組件組成VxWorks實(shí)時(shí)環(huán)境,并生成板級(jí)支持包BSP的配置。通過修改config.h可以實(shí)現(xiàn)WindConfig的所有功能,并且,可以實(shí)現(xiàn)WindConfig不能實(shí)現(xiàn)的功能。
* WindSh:Tornado外殼
WindSh是一個(gè)駐留在主機(jī)內(nèi)的C語(yǔ)言解釋器,通過它可運(yùn)行下載到目標(biāo)機(jī)上的所有函數(shù),包括VxWorks和應(yīng)用函數(shù)。Tornado外殼還能解釋常規(guī)的工具命令語(yǔ)言TCL。
WindSh不僅可以解釋幾乎所有的C語(yǔ)言表達(dá)式,而且可以實(shí)現(xiàn)所有的調(diào)試功能。它主要有以下調(diào)試功能:下載軟件模塊;刪除軟件模塊;產(chǎn)生任務(wù);刪除任務(wù);設(shè)置斷點(diǎn);刪除斷點(diǎn);運(yùn)行、單步、繼續(xù)執(zhí)行程序;查看內(nèi)存、寄存器、變量;修改內(nèi)存、寄存器、變量;查看任務(wù)列表、內(nèi)存使用情況、CPU利用率;查看特定的對(duì)象(任務(wù)、信號(hào)量、消息隊(duì)列、內(nèi)存分區(qū)、類);復(fù)位目標(biāo)機(jī)。
* 瀏覽器
Tornado瀏覽器可查看內(nèi)存分配情況、任務(wù)列表、CPU利用率、系統(tǒng)目標(biāo)(如任務(wù)、消息隊(duì)列、信號(hào)量等)。這些信息可周期性地進(jìn)行更新。
* CrossWind:源碼級(jí)調(diào)試器
源碼級(jí)調(diào)試器CrossWind提供了圖形和命令行方式來(lái)調(diào)試,可進(jìn)行指定任務(wù)或系統(tǒng)級(jí)斷點(diǎn)設(shè)置、單步執(zhí)行、異常處理。
有些功能如修改內(nèi)存、寄存器、變量的值通過菜單操作是無(wú)法實(shí)現(xiàn)的,需要在WindSh中執(zhí)行原語(yǔ)操作實(shí)現(xiàn)。
* 駐留主機(jī)的目標(biāo)服務(wù)器
目標(biāo)服務(wù)器管理主機(jī)與目標(biāo)機(jī)的通信,所有與目標(biāo)機(jī)的交互工具都通過目標(biāo)服務(wù)器,它也管理主機(jī)上的目標(biāo)機(jī)符號(hào)表,提供目標(biāo)模塊的加載和卸載。
* Tornado注冊(cè)器
所有目標(biāo)服務(wù)器注冊(cè)其提供的服務(wù)在注冊(cè)器中。注冊(cè)器映射用戶定義的目標(biāo)名到目標(biāo)服務(wù)器網(wǎng)絡(luò)地址。
* VxWorks
Tornado集成了VxWorks操作系統(tǒng)。
* 目標(biāo)代理程序
目標(biāo)代理程序是一個(gè)駐留在目標(biāo)機(jī)中的聯(lián)系Tornado工具和目標(biāo)機(jī)系統(tǒng)的組件。一般來(lái)說(shuō),目標(biāo)代理程序往往是不可見的。
3、MPC750/MCPN750上bootrom的制作
MPC750/MCPN750上的 bootrom用于初始化MPC750/MCPN750的硬件,通過網(wǎng)口加載 VxWorks 的內(nèi)核映象。因?yàn)镸PC750/MCPN750的bootrom已經(jīng)制作,如果沒有特殊需要,不需重新制作bootrom。
制作MPC750/MCPN750上 bootrom的步驟:
* 在Tornado集成環(huán)境下,使用菜單命令Project | Make MCP750/MCPN750 | Comman Targets | clean刪除以前生成的bootrom文件,使用菜單命令Project | Make MCP750/MCPN750 | Comman Targets | bootrom.hex生成bootrom文件。生成的bootrom文件在相應(yīng)的BSP目錄中(MCP750為c:tornadotargetconfigmcp750,MCPN750為c:tornadotargetconfigmcpn750)
* 使用elftobin lt; bootRom gt; mcp750.bin 生成mcp750.bin 文件
* 啟動(dòng)TFTP服務(wù)器tftpd32.exe,設(shè)置下載文件(mcp750.bin)的目錄
* 用PPCBug啟動(dòng)目標(biāo)系統(tǒng)
* 運(yùn)行并配置超級(jí)終端。配置:9600bps波特率、8位數(shù)據(jù)位、1位停止位、無(wú)校驗(yàn)位、無(wú)流量控制。
* 在超級(jí)終端中,使用niot命令修改客戶(目標(biāo)機(jī))IP地址和服務(wù)器(主機(jī))IP地址
* 使用niop命令設(shè)置加載的文件名(mcp750.bin)
* 使用pflash 4000:FFF00 ff000100命令寫FLASH B。
4、啟動(dòng)軟盤制作
目標(biāo)機(jī)啟動(dòng)軟盤用于啟動(dòng)目標(biāo)機(jī),通過網(wǎng)口使用Ftp協(xié)議從主機(jī)下載VxWorks映象。在X86平臺(tái)上,一般使用啟動(dòng)軟盤來(lái)啟動(dòng)目標(biāo)機(jī)。
.1 .啟動(dòng)盤的制作
在實(shí)時(shí)應(yīng)用系統(tǒng)的開發(fā)調(diào)測(cè)階段,往往采用以PC機(jī)作為目標(biāo)機(jī)來(lái)調(diào)測(cè)程序。主機(jī)PC和目標(biāo)機(jī)PC之間可采取串口或是網(wǎng)口進(jìn)行聯(lián)結(jié)。由于大多數(shù)目標(biāo)已配有網(wǎng)卡,網(wǎng)絡(luò)聯(lián)結(jié)成為最簡(jiǎn)單快速的連接方式。串口聯(lián)結(jié)雖通信速率不高,也有它自己的優(yōu)點(diǎn),系統(tǒng)級(jí)任務(wù)調(diào)試(如中斷服務(wù)程序ISR)需使通信方式工作在Polled 模式,網(wǎng)口聯(lián)結(jié)就不支持,因此可以裁剪掉系統(tǒng)中網(wǎng)絡(luò)部分,以使VxWorks系統(tǒng)更小,滿足目標(biāo)板的內(nèi)存約束。下面分別對(duì)這兩種通信方式下目標(biāo)機(jī)VxWorks系統(tǒng)啟動(dòng)盤的制作作一簡(jiǎn)要介紹(以PC機(jī)為目標(biāo)系統(tǒng))。
串口通信時(shí)目標(biāo)機(jī)VxWorks系統(tǒng)啟動(dòng)盤的制作步驟:
1.修改通用配置文件\Tornadotargetconfigpc486config.h.
在config.h文件中加入以下宏定義:
#define INCLUDE_WDB
#define INCLUDE_WDB_TTY_TEST
#undef WDB_COMM_TYPE
#define WDB_COMM_TYPE WDB_COMM_SERIAL /*定義通信方式為串口聯(lián)結(jié)*/
#define WDB_TTY_CHANNEL 1 /*通道號(hào)*/
#define WDB_TTY_BAUD 9600 /*串口速率,可設(shè)置至38400*/
#define WDB_TTY_DEV_NAME quot;tyCo/1quot;
#define CONSOLE_TTY 0
#define DEFAULT_BOOT_LINE
quot;fd=0,0(0,0)hostname:/fd0/vxWorks h=主機(jī)ip e=目標(biāo)機(jī)ip u=主機(jī)上的登錄用戶名quot;
2. 在Tornado集成環(huán)境中執(zhí)行菜單命令Project | Make PC486 | Common Targets | clean刪除以前生成的文件,執(zhí)行菜單命令Project | Make PC486 | Boot Rom Targets | bootrom_uncmp編譯鏈接生成bootrom_uncmp ;再選擇VxWorks Target,編譯生成vxworks。
3.拷貝\Tornadotargetconfigpc486bootrom_uncmp至\Tornadohostbin下;
4.重命名文件bootrom_uncmp為bootrom;
15.準(zhǔn)備一張已格式化的空盤插入軟驅(qū);
6.在目錄\Tornadohostbin下執(zhí)行命令 mkboot a: bootrom;
7.拷貝\Tornadotargetconfigpc486VxWorks至軟盤;
8.將系統(tǒng)制作盤插入目標(biāo)機(jī)軟驅(qū),加電啟動(dòng)目標(biāo)機(jī)即載入VxWorkst系統(tǒng)。
網(wǎng)口通信時(shí)目標(biāo)機(jī)VxWorks系統(tǒng)啟動(dòng)盤的制作步驟:
1.配置目標(biāo)機(jī)網(wǎng)卡,設(shè)置其中斷號(hào)和輸入輸出范圍(I/O地址);
2.修改通用配置文件\Tornadotargetconfigpc486config.h.
針對(duì)不同的網(wǎng)卡,其名稱不同,如NE2000及其兼容網(wǎng)卡為ENE,3COM以太網(wǎng)卡為ELT,Intel網(wǎng)卡為EEX。 在config.h文件中修改相應(yīng)網(wǎng)卡類型(如網(wǎng)卡為3COM網(wǎng)卡)的定義部分:
#define IO_ADRS_ELT 網(wǎng)卡I/O地址
#define INT_LVL_ELT 網(wǎng)卡中斷號(hào)
并且修改#define DEFAULT_BOOT_LINE的定義:
#define DEFAULT_BOOT_LINE
quot;elt(0,0)主機(jī)標(biāo)識(shí)名:C:\tornado\target\config\pc486\vxWorks h=主機(jī)IP e=目標(biāo)機(jī)IP u=登錄用戶名 pw=口令 tn=目標(biāo)機(jī)名quot;
DEFAULT_BOOT_LINE宏定義,使缺省配置符合自己的調(diào)試環(huán)境
#define DEFAULT_BOOT_LINE
quot;ene(0,0)host:c:/tornado/target/config/pc486/vxWorks h=129.9.75.39 e=129.9.49.7 u=x86 pw=x86 tn=x86quot;
ene(0,0) /* 啟動(dòng)設(shè)備為網(wǎng)卡 */
host /* 主機(jī)標(biāo)識(shí),可以任意填寫,不影響啟動(dòng)過程 */
c:tornadotargetconfigpc486vxWorks /* 需要從主機(jī)加載的映象文件 */
h=129.9.75.39 /* 主機(jī)的IP地址 */
e=129.9.49.7 /* 目標(biāo)機(jī)的IP地址 */
u=x86 /* 用戶名,主機(jī)的Ftp服務(wù)器必須有相應(yīng)的同名用戶 */
pw=x86 /* 密碼,必須與主機(jī)的Ftp服務(wù)器相應(yīng)的同名用戶的密碼相同*/
tn=x86 /*目標(biāo)名,可以任意設(shè)置,不影響啟動(dòng)過程*/
3.主機(jī)信息的確定(可無(wú))
主機(jī)操作系統(tǒng)Win95安裝目錄下有一文件hosts.sam,向其中加入:
主機(jī)IP 主機(jī)名
目標(biāo)機(jī)IP 目標(biāo)機(jī)名
4.在Tornado集成環(huán)境中點(diǎn)取Project菜單,選取Make PC486,選擇Common Target,先進(jìn)行clean操作;再選擇Boot Rom Target,進(jìn)行bootrom_uncmp操作;再選擇VxWorks Target,進(jìn)行vxworks操作。
5.拷貝\Tornadotargetconfigpc486bootrom_uncmp至\Tornadohostbin下;
6.重命名文件bootrom_uncmp為bootrom;
7.準(zhǔn)備一張已格式化的空盤插入軟驅(qū);
8.在目錄\Tornadohostbin下執(zhí)行命令 mkboot a: bootrom ;
9.啟動(dòng)Tornado組件FTP Server,在WFTPD窗口中選擇菜單Security中的User/right...,在其彈出窗口中選擇New User...,根據(jù)提示信息輸入登錄用戶名和口令,并且要指定下載文件vxWorks所在根目錄;還必選取主菜單Logging中Log options,使Enable Logging、Gets 、Logins 、Commands 、Warnings能。
10.將系統(tǒng)制作盤插入目標(biāo)機(jī)軟驅(qū),加電啟動(dòng)目標(biāo)機(jī)即通過FTP方式從主機(jī)下載VxWorkst系統(tǒng)。
2)主機(jī)Tornado環(huán)境配置
串口聯(lián)結(jié)時(shí)主機(jī)Tornado開發(fā)環(huán)境的目標(biāo)服務(wù)器配置操作如下:
1.在Tornado集成環(huán)境中點(diǎn)取Tools菜單,選取Target Server,選擇config...;
2.在Configure Target Servers窗口中先給目標(biāo)服務(wù)器命名;
3.在配置目標(biāo)服務(wù)器窗口中的quot;Change Propertyquot;窗口中選擇Back End,在quot;Available Backquot;窗口中選擇wdbserial,再在quot;Serial Portquot;窗口中選擇主機(jī)與目標(biāo)機(jī)連接所占用的串口號(hào)(COM1,COM2),再在quot;Speed(bps)quot;窗口中選擇主機(jī)與目標(biāo)機(jī)間串口速率。
4. 在配置目標(biāo)服務(wù)器窗口中的quot;Change Propertyquot;窗口中選擇Core File and Symbols,
選擇File為BSP目標(biāo)文件所在目錄(本例為PC486目錄)的VxWorks.st,并選取為All Symbols.
5.在配置目標(biāo)服務(wù)器窗口中的quot;Change Propertyquot;窗口中的其它各項(xiàng)可根據(jù)需要選擇。
網(wǎng)口聯(lián)結(jié)時(shí)主機(jī)Tornado開發(fā)環(huán)境的目標(biāo)服務(wù)器配置操作如下:
1.在Tornado集成環(huán)境中點(diǎn)取Tools菜單,選取Target Server,選擇config...;
2.在Configure Target Servers窗口中先給目標(biāo)服務(wù)器命名;
3.在配置目標(biāo)服務(wù)器窗口中的quot;Change Propertyquot;窗口中選擇Back End,在quot;Available Backquot;窗口中選擇wdbrpc,在quot;Target IP/Addressquot;窗口中輸入目標(biāo)機(jī)IP。
4. 在配置目標(biāo)服務(wù)器窗口中的quot;Change Propertyquot;窗口中選擇Core File and Symbols,
選擇File為BSP目標(biāo)文件所在目錄(本例為PC486目錄)的VxWorks,并選取為All Symbols.
5.在配置目標(biāo)服務(wù)器窗口中的quot;Change Propertyquot;窗口中的其它各項(xiàng)可根據(jù)需要選擇。
以上的串口和網(wǎng)口聯(lián)結(jié)配置完成后,可按以下步驟和目標(biāo)機(jī)建立連接:
1.點(diǎn)擊Launch按鈕,連接主機(jī)和目標(biāo)機(jī),全部出現(xiàn)successed后即可進(jìn)入應(yīng)用程序調(diào)試。
2.點(diǎn)擊圖形按鈕中下拉框,選擇和主機(jī)相連的目標(biāo)機(jī)。
3.選擇Debugger菜單項(xiàng)中Download...,下載應(yīng)用程序到目標(biāo)板。
4. 選擇Debugger菜單項(xiàng)中Run...,調(diào)測(cè)應(yīng)用程序中某一任務(wù)或功能函數(shù)。
VxWorks系統(tǒng)目標(biāo)機(jī)啟動(dòng)盤的制作步驟:
焈 配置目標(biāo)機(jī)網(wǎng)卡,設(shè)置其中斷號(hào)和輸入輸出范圍(I/O地址);
焈 修改配置文件C:Tornadotargetconfigpc486config.h。
不同的網(wǎng)卡,其名稱不同,如NE2000及其兼容網(wǎng)卡為ENE,3COM以太網(wǎng)卡為ELT,Intel網(wǎng)卡為EEX。根據(jù)目標(biāo)機(jī)的網(wǎng)卡類型、中斷號(hào)、I/O地址修改config.h文件中的相應(yīng)宏定義。以下以NE2000網(wǎng)卡(中斷號(hào)為10,I/O地址為0X300)為例說(shuō)明配置過程。
#define IO_ADRS_ENE 0x300 /*網(wǎng)卡I/O地址*/
#define INT_LVL_ENE 0x0a /*網(wǎng)卡中斷號(hào)*/
* 因?yàn)橛密洷P啟動(dòng)目標(biāo)機(jī)無(wú)法保存修改的信息,修改config.h文件中的DEFAULT_BOOT_LINE宏定義,使缺省配置符合自己的調(diào)試環(huán)境
#define DEFAULT_BOOT_LINE
quot;ene(0,0)host:c:/tornado/target/config/pc486/vxWorks h=129.9.75.39 e=129.9.49.7 u=x86 pw=x86 tn=x86quot;
ene(0,0) /* 啟動(dòng)設(shè)備為網(wǎng)卡 */
host /* 主機(jī)標(biāo)識(shí),可以任意填寫,不影響啟動(dòng)過程 */
c:tornadotargetconfigpc486vxWorks /* 需要從主機(jī)加載的映象文件 */
h=129.9.75.39 /* 主機(jī)的IP地址 */
e=129.9.49.7 /* 目標(biāo)機(jī)的IP地址 */
u=x86 /* 用戶名,主機(jī)的Ftp服務(wù)器必須有相應(yīng)的同名用戶 */
pw=x86 /* 密碼,必須與主機(jī)的Ftp服務(wù)器相應(yīng)的同名用戶的密碼相同*/
tn=x86 /*目標(biāo)名,可以任意設(shè)置,不影響啟動(dòng)過程*/
焈 在Tornado集成環(huán)境中執(zhí)行菜單命令Project | Make PC486 | Common Targets | clean刪除以前生成的文件,執(zhí)行菜單命令Project | Make PC486 | Boot Rom Targets | bootrom_uncmp編譯鏈接生成bootrom_uncmp。
* 拷貝c:Tornadotargetconfigpc486bootrom_uncmp至c:Tornadohostbin下;
* 重命名文件bootrom_uncmp為bootrom;
* 準(zhǔn)備一張已格式化的空盤插入軟驅(qū);
* 在目錄c:Tornadohostbin下執(zhí)行命令 mkboot a: bootrom ;
* 啟動(dòng)盤制作完成
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論