建立调试环境
建立調試環境
Tornado采用支持主機/目標機開發模式。本節以x86系列目標機為例介紹調試環境的建立
。
7.1.1 配置文件config.h
目標機運行的程序包括兩部分:引導文件bootrom.sys和操作系統影像文件VxWorks。
引導文件bootrom.sys的主要作用類似于BIOS,一般它存放在一張軟盤或目標機硬盤或目
標
機FLASH盤上,由Vxld或其他程序加載到內存,用于初始化目標機上的包括引導硬件在內
的
硬件,建立VxWorks運行的環境,從引導設備上加載VxWorks操作系統影像,并將CPU的控
制
權移交給操作系統。
VxWorks是操作系統的影像文件。它是應用程序和目標代理程序(調試環境的目標機部分
)
運行的軟件平臺,一般存放在bootrom.sys所在軟盤或目標機硬盤或目標機FLASH盤,或
主
機硬盤上,由bootrom.sys的引導程序加載到目標機內存。
bootrom.sys和VxWorks這兩個可以利用Tornado提供的工具,按照配置文件config.h有關
設
置自動生成。特定BSP的配置文件config.h在該BSP目錄下。如pc486的配置文件是Tornad
o
\target\config\pc486\config.h。
配置文件config.h主要定義了引導行,目標機操作系統包含的主要成分,如軟驅、IDE硬
盤
、SCSI設備、網絡等設備驅動,文件系統(DOSFS,TFFS,CDROMFS等),調試方式,內
存
地址等及有關參數。
引導行(boot line)定義了引導設備、引導路徑、操作系統文件名、主機/目標機IP地
址
、子網掩碼、FTP用戶名和口令等參數。
對于X86平臺目標機,引導設備可以是軟盤(fd),硬盤(ata或ide),FLASH盤(tffs
)
,網卡(elt、ene等)等。一般采用通過以太網或通過RS232或RS422標準串口連結進行
調
試。
在X86平臺上,首先確定調試手段,是通過網絡還是串口調試?然后按下面的步驟建立調
試
環境:
1 修改配置文件
2 生成bootrom_uncmp引導文件和VxWorks影像文件
3 制作啟動軟盤
4 配置主機環境
5 用啟動軟盤啟動目標機
6 從主機搭接(attach)到目標機
下面詳細介紹。
7.1.2 網絡連接
使用以太網連結調試方式,通過網口使用FTP協議從主機下載VxWorks映像。在X86平臺上
,
一般使用啟動軟盤來啟動目標機。首先要確定目標機使用的網卡型號。VxWorks5.4支持
的
網卡可以參考config.h文件。需要包含相應的INCLUDE_XXX。常用的如下表:
表7.1 VxWorks5.4支持的幾種常用網卡
INCLUDE_XXX 網絡接口卡 備注
INCLUDE_ENE Eagle/Novell NE2000接口卡 包括兼容卡,不支持即插即用方
式
INCLUDE_ELT 3COM EtherLink III接口卡 ? 包括兼容卡,不支持即插即用方
式
INCLUDE_EL_3C90X_END 3com fast etherLink XL PCI網卡 3Com3c905系列
INCLUDE_FEI Intel Ether Express PRO100B PCI接口卡
INCLUDE_LN_97X_END AMD 79C972網卡
1 修改config.h
修改config.h最重要的一步是修改引導行。引導文件bootrom.sys根據引導行來確定引導
設
備、引導路徑、操作系統文件,并且引導行存放在固定的位置。操作系統訪問引導行來
確
定網絡的配置,系統reboot時也將訪問引導行。bootrom.sys和VxWorks將它轉換為一個
特
定的引導參數結構BOOT_PARAMS 。
在config.h中,引導行定義為有特定格式的字符串。BOOT_PARAMS定義在h\bootlib.h中
。
解釋如下:
typedef struct ? /* 引導參數結構BOOT_PARAMS */
{
char bootDev [BOOT_DEV_LEN]; /* 引導設備代碼 */
char hostName [BOOT_HOST_LEN]; /* 主機名 */
char targetName [BOOT_HOST_LEN]; /* 目標機名 */
char ead [BOOT_TARGET_ADDR_LEN]; /* 目標機以太網地址*/
char bad [BOOT_TARGET_ADDR_LEN]; /* 底板以太網地址 */
char had [BOOT_ADDR_LEN]; /* 主機以太網地址 */
char gad [BOOT_ADDR_LEN]; /* 以太網網關 */
char bootFile [BOOT_FILE_LEN]; /* 引導文件名 */
char startupScript [BOOT_FILE_LEN]; /* 啟動腳本文件名*/
char usr [BOOT_USR_LEN]; ? /* 用戶名 */
char passwd [BOOT_PASSWORD_LEN]; /* 口令 */
char other [BOOT_OTHER_LEN]; /* 留給應用程序使用 */
int? procNum; /* 處理器號*/
int? flags; /* 配置標示*/
int? unitNum; /* 網絡設備編號 */
} BOOT_PARAMS;
以ISA 3COM3c509b網卡為例,網卡需要設置為非即插即用方式,中斷號為5,IO端口為0x
3
00。主機IP地址為222.1.5.169,目標機IP地址為222.1.5.36。主機名為VxHost,有一FT
P
用戶VxMe,口令為isMe。
對應的引導行應為:
“elt(0,0)VxHost:\tornado\target\config\pc486\vxWorks h=222.1.5.169
e=222.1.5.
36 u=VxMe pw=isMe tn=VxTarget”
解釋如下:
ene /* 啟動設備名,為ISA3COM3c509網卡,ne2000網卡應為ene */
VxHost /* 主機標名,可以任意填寫,不影響啟動過程 */
\tornado\target\config\pc486\vxWorks /* 需要從主機加載的路徑及映像文件名
*/
h=222.1.5.169 /* 主機的IP地址 */
e=222.1.5.36 /* 目標機的IP地址 */
u= VxMe /* 用戶名,主機的Ftp服務器必須有相應的同名用戶 */
pw= isMe /* 口令,必須與主機的Ftp服務器相應的同名用戶的口令相同*/
tn= VxTarget /*目標名,可以任意設置,不影響啟動過程*/
將下面的一行
#undef? INCLUDE_ELT /* uninclude 3COM EtherLink III interface
*/
該為:
#define INCLUDE_ELT /* include 3COM EtherLink III interface */
還要修改下面的定義
#define IO_ADRS_ELT 0x240
#define INT_LVL_ELT 0x0b
為:
#define IO_ADRS_ELT 0x300 /* 網卡I/O地址 */
#define INT_LVL_ELT 0x05 ? /* 網卡中斷號 */
config.h 修改完畢,下一步是生成目標文件bootrom.sys和V xWorks。
2 生成目標文件bootrom.sys和VxWorks
先生成bootrom_uncmp。
在Tornado集成環境中執行菜單命令Build-〉Build Boot ROM…,在彈出的對話框中,左
邊
框中選擇BSP,選中pc486,右邊框中選擇要生成的影像文件,選擇bootrom_uncmp,然后
點
擊OK確認。Tornado將生成bootrom_uncmp。
再生成VxWorks。
在Tornado集成環境中執行菜單命令Build-〉Standard BSP Builds…。(如果沒有該項
,
請執行菜單命令Tools-〉Options…,在彈出的對話框中,選中Project頁,選擇Show
Tor
nado 1.0.1 menu items,點擊OK確認)。與生成bootrom_uncmp類似,在彈出的對話框中
,
BSP選擇pc486,影像文件,選擇VxWorks。然后點擊OK確認。Tornado將生成VxWorks。
注意,必要時先進行clean操作
3 制作啟動軟盤
拷貝 Tornado\target\config\pc486\bootrom_uncmp至 Tornado\host\bin下;
準備一張已格式化的空盤插入軟驅;
在目錄Tornado\host\bin下執行命令
mkboot a: bootrom_uncmp
注意,有時,我們需要改變配置參數,重新生成引導文件,如果軟盤已經是可引導的,
那
么只需更換軟盤上的引導文件即可,方法是:
del a:. (需要鍵入’y’確認刪除)
vxcopy bootrom_uncmp a:bootrom.sys
4 配置主機環境
主機操作系統Win95安裝目錄下有一文件hosts.sam,向其中加入:
主機IP 主機名
目標機IP 目標機名
啟動Tornado組件FTP Server,在WFTPD窗口中選擇菜單Security中的User/right...,在
其
彈出窗口中選擇New User...,根據提示信息輸入登錄用戶名和口令,并且要指定下載文
件
VxWorks所在根目錄。可能還需要選取主菜單Logging中Log options、Enable Logging、
G
ets 、Logins 、Commands 、Warnings選項。
5 用啟動軟盤啟動目標機
將系統引導軟盤插入目標機軟驅,加電啟動,目標機即通過FTP方式從主機下載VxWorkst
系
統。
在控制臺上可以看到啟動信息。如果需要修改,在等待用戶配置時,按c鍵,進行相應修
改
。(注意:配置信息要與主機配置、Ftp服務器配置一致),修改結束后,按@鍵重新啟
動
目標機。
6 從主機搭接(attach)到目標機
在Tornado集成環境中點取Tools菜單,選取Target Server,選擇config...;
在Configure Target Servers窗口中先給目標服務器命名;
在配置目標服務器窗口中的“Target Servers Property”窗口中,選擇Back End;在“
A
vailable Back”窗口中選擇wdbrpc,在“Target IP/Address”窗口中輸入目標機IP(
本
例為222.1.5.36);
在配置目標服務器窗口中的“Target Servers Property”窗口中,選擇Core File
and S
ymbols, 選擇File為BSP目標文件所在目錄(本例為PC486目錄)的VxWorks,并選取為Al
l
Symbols;
在配置目標服務器窗口中的" Target Servers Property"窗口中的其它各項可根據需要
選
擇;
點擊Launch按鈕,連接主機和目標機,全部出現successed后即可進入應用程序調試;
點擊圖形按鈕中下拉框,選擇和主機相連的目標機。即可建立主機目標機連接。
這時Shell、Debugger等按鈕可用。
7.1.3 串口連接
串口連接一般從啟動軟盤下載VxWorks映像。其步驟如下:
1 修改通用配置文件
在config.h文件中加入以下宏定義:
#define INCLUDE_WDB
#define INCLUDE_WDB_TTY_TEST
#undef WDB_COMM_TYPE
#define WDB_COMM_TYPE WDB_COMM_SERIAL /*定義通信方式為串口聯結*/
#define WDB_TTY_CHANNEL 1 /*通道號,目標機串口2*/
#define WDB_TTY_BAUD 9600 /*串口速率,VxWorks最高可設置至38400*/
#define WDB_TTY_DEV_NAME "tyCo/1"
#define CONSOLE_TTY 0
引導行為
#define DEFAULT_BOOT_LINE \
"fd=0,0(0,0)hostname:/fd0/vxWorks h=222.1.5.169 e=222.1.5.36 u=VxMe"
2 生成目標文件bootrom.sys和VxWorks
同網絡連接。
3 制作啟動軟盤
同網絡連接。同時要把Tornado\target\config\pc486\VxWorks拷貝至軟盤。
4 配置主機環境
不需要。
5 用啟動軟盤啟動目標機
將系統制作盤插入目標機軟驅,加電啟動,目標機即由軟盤下載VxWorks系統。
6 從主機搭接(attach)到目標機
在Tornado集成環境中點取Tools菜單,選取Target Server,選擇config...;
在Configure Target Servers窗口中先給目標服務器命名;
在Configure Target Servers窗口中先給目標服務器命名;
在配置目標服務器窗口中的" Target Servers Property"窗口中選擇Back End,在"Avai
l
?
able Back"窗口中選擇wdbserial,再在"Serial Port"窗口中選擇主機與目標機連接所
占
用的串口號(COM1,COM2),再在"Speed(bps)"窗口中選擇主機與目標機間串口速率;
在配置目標服務器窗口中的" Target Servers Property"窗口中選擇Core File and
Symb
ols,選擇File為BSP目標文件所在目錄(本例為PC486目錄)的VxWorks,并選取為All
Sy
mbols;
在配置目標服務器窗口中的" Target Servers Property"窗口中的其它各項可根據需要
選
擇;
點擊Launch按鈕,連接主機和目標機,全部出現successed后即可進入應用程序調試;
點擊圖形按鈕中下拉框,選擇和主機相連的目標機。即可建立主機目標機連接。
這時Shell、Debugger等按鈕可用。?
總結
- 上一篇: 交通银行信用卡想分就分业务常见问题分析
- 下一篇: 大额存单如何转让?大额存单转让流程