建立调试环境
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等按钮可用。?