现在位置:首页 >> 嵌入式操作系统 >> VxWorks
VxWorks/Tornado建立调试环境
作者:xiaoli 时间:2009/8/7 文章来源:来自网络

建立调试环境
 
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的配置文件是Tornado\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端口为0x300。主机IP地址为222.1.5.169,目标机IP地址为222.1.5.36。主机名为VxHost,有一FTP,用户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,并选取为All 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,在"Avail 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等按钮可用。

上一篇:VxWorks中的地址映射[返回列表]下一篇: vxworks测试题