| 网站首页 | 新闻 | SOPC | FPGA | DSP | ARM | 嵌入式操作系统 | 下载 | 所有产品 | 留言 | 论坛 | 购买指南 | 网络协议 | 驱动设计 | 
您现在的位置: 21嵌入式控制研究室 >> 嵌入式操作系统 >> Vxworks >> 文章正文 用户登录 新用户注册
打通VxWorks调试环境 Step by Step       ★★★ 【字体:
打通VxWorks调试环境 Step by Step
作者:佚名    文章来源:21control    点击数:    更新时间:2005-12-26
打通VxWorks调试环境 Step by Step

dot
Dec 31, 2002
版权所有


修订记录
日期 修订版本 描述 作者
2002-12-20 1.0 初稿
2002-12-31 1.1 调换了3.4和3.5两节的位置,即把配置BSP放在添加新工程之前;
增加了4 串口控制台的配置方法。





1 引言
1.1 编写目的
概要说明如何建立使用Tornado开发、调试VxWorks的环境(X86版本)。
1.2 背景
1.3 定义
n HOST:主机,运行Tornado集成环境,FTP Server,Target Server,以及编辑、build
工程、下载目标文件的各种软件工具;
n TARGET:目标机,HOST产生的vxWorks映像运行的位置,对于X86版本来说也是一台PC

n TORNADO:C:\Tornado,安装Tornado的路径;
n BSPNAME:C:\Tornado\target\config\pc486,BSP的路径,本例中我们选择pc486;
n PROJECT:C:\Tornado\proj\Project2,我们自己创建的工程的路径;
n BIN:C:\Tornado\host\x86-win32\bin,Tornado的可执行程序的路径;
n HOME:C:\Tornado\host\x86-win32\bin,FTP用户的根目录。

1.4 参考资料
n Tornado User’s Guide (Windows Version), 2.0, Edition 1
n VxWorks Programmer’s Guide, 5.4, Edition 1
2 总体描述
2.1 硬件环境

HOST与TARGET通过以太网互连,并且位于同一网段;同时,串口通过直连电缆(NULL
Modem Cable)连接。目标机配置有软盘驱动器,网卡为3com 3c905B.

2.2 软件环境
主机操作系统为Windows 2000简体中文专业版(SP3);安装Tornado Version 2.0和Win
2k补丁。
(CD No. TDK-12835-ZC-01 & TDK-13127-ZC-00, T2 LM for x86)

2.3 预览
在VxWorks调试环境中,HOST与TARGET之间连接的方式有多种,比如串口和网络;引导TA
RGET的方式也有多种,当然对X86平台来说最简单的是软盘引导了。在本文档中我们以网
络连接、软盘引导为例,建立起调试环境。主要步骤包括:
n HOST上启动FTP Server,
n 配置BSP
n 创建可以引导TARGET的Boot ROM,
n 制作引导盘(软盘),
n 用软盘引导TARGET,
n TARGET通过网络连接从HOST下载vxWorks映像文件,
n TARGET运行vxWorks,
n HOST上启动Target Server连接Target Agent,
成功建立调试环境之后,就可以在HOST生成目标模块,下载到TARGET运行,并通过Torna
do集成环境进行调试。

注意:本文档中所描述的对于某些选项的选择并不一定是绝对的,只是一个行之有效的
实例,仅供参考。


3 详细步骤
3.1 获得IP地址和网卡类型
首先要知道HOST和TARGET的IP地址以及TARGET安装的网卡类型。
在本例中,HOST的IP是10.10.0.150,TARGET的IP是10.10.0.151。TARGET的IP地址只要
不跟其他机子冲突即可(正常情况下可以通过你们的网管得到),因为目前TARGET并没
有安装任何操作系统,所以这个IP地址无从配置,只是在后面的配置文件中会用到。
网卡类型是一个十分重要的问题。为了减少麻烦,最好选择VxWorks缺省支持的网卡类型
,否则可能还要添加网卡驱动程序。不知道哪里有这样一个所支持的网卡列表,但是在
不同BSP的BSPNAME/config.h文件中可以看出一些眉目。比如pc486/config.h中有如下定
义:

#undef INCLUDE_ULTRA /* include SMC Elite16 Ultra interface */
#undef INCLUDE_ENE /* include Eagle/Novell NE2000 interface */
#undef INCLUDE_ELT /* include 3COM EtherLink III interface */
#undef INCLUDE_ESMC /* include SMC 91c9x Ethernet interface */
#define INCLUDE_FEI /* include Intel Ether Express PRO100B PCI */
#define INCLUDE_SLIP /* include serial line interface */
#define SLIP_TTY 1 /* serial line IP channel COM2 */
#undef INCLUDE_ELC /* include SMC Elite16 interface */
#undef INCLUDE_EEX /* include INTEL EtherExpress interface */
#undef INCLUDE_EEX32 /* include INTEL EtherExpress flash 32 */
#undef INCLUDE_EX /* include Excelan Ethernet interface */
#undef INCLUDE_ENP /* include CMC Ethernet interface*/
#undef INCLUDE_SM_NET /* include backplane net interface */
#undef INCLUDE_SM_SEQ_ADDR /* shared memory network auto address setup */
#undef INCLUDE_EL_3C90X_END /* 3com fast etherLink XL PCI */
#undef INCLUDE_LN_97X_END /* AMD 79C972 END DRIVER */

从注释中可以看出,NE2000、3COM 3C509、3COM 3C90X、Intel EtherExpress PRO100B
等网卡是VxWorks所支持的,同时也是比较常见的,可以说是初次配置VxWorks的比较好
的选择。
本例中我们使用了一块3COM 3C905B网卡(3com Fast EtherLink XL PCI)。事实证明能
够很好地支持。
其实也不是所有的3COM网卡都支持,有一篇网友的帖子显示,3C905-TX的网卡就给他带
来了很大的麻烦,换了3C905-BT才好,好像3C905-FX也是可以的。

3.2 修改hosts文件
在文件
c:\winnt\system32\drivers\etc\hosts
中添加如下行:
10.10.0.150 xmdong
10.10.0.151 target

3.3 FTP服务器
Tornado自带了一个FTP服务器软件WFTPD。当HOST是WIN32平台时,TARGET通过网络连接
只能用FTP协议从HOST下载vxWorks映像文件。
打开FTP Server。
选中Security > Users/Rights…菜单,在添加新用户对话框中:
User Name: target,
Password: target,
Home Directory: 这里我设置为BIN,你也可以设置为其他路径,记住你的设置。后面DE
FAULT_BOOT_LINE中定义的vxWorks文件路径,就是以HOME为根目录的相对路径。建议将v
xWorks文件复制到HOME目录下面,这样vxWorks文件的路径最短。

另外,你可以通过Logging > Log Options…菜单,选中那些可选项目,来观察FTP过程
中的问题。
配置好之后,启动FTP Server。

3.4 配置BSP
配置BSP的工作是通过修改config.h文件完成的。这一步比较关键。
打开BSPNAME/config.h文件。
在文件的108行左右,会有对不同CPU的DEFAULT_BOOT_LINE定义语句,它描述了引导参数
,定义正确之后所制作的Boot ROM软盘才能正常引导TARGET机子。
根据我们的配置,这里应该修改为:
#elif (CPU == I80486)
#define DEFAULT_BOOT_LINE \
"elPci(0,0)xmdong:vxWorks \
h=10.10.0.150 e=10.10.0.151 u=target pw=target tn=target"
参数 参数值 描述
Boot device elPci 3COM 3C905B网卡
Processor number (0,0)
Host name xmdong 主机名
File name vxWorks VxWorks Image 文件路径名
Host inet (h) 10.10.0.150 主机网络接口地址
Inet on Ethernet (e) 10.10.0.151 目标机网络接口地址
User (u) target FTP用户名
Password (pw) target FTP密码
Target name (tn) target 目标机名称
有关引导参数的详细描述,请参考Tornado User’s Guide之 2.5.4 Description of
Boot Parameters。
BSP中缺省包含了对Intel Ether Express PRO100 网卡的支持,而我们用的是3C905B网
卡,因此要去掉原来的定义,添加对我们的网卡的支持:
#undef INCLUDE_FEI
#define INCLUDE_EL_3C90X_END /* for our 3COM 3C905B NIC */

3.5 新工程
然后在Tornado中新建一个工程。选择“Create a bootable VxWorks image”,OK。

n Step 1
Name: Project2
Location: C:\Tornado\proj\Project2 (以后我们提到PROJECT就是指这个路径)
Workspace: Add to current Workspace
n Step 2
Would you like to base your project on: A BSP, pc486 (也就是我们说的BSPNAME

n Step 3
Finish

3.6 Build工程
在Tornado环境的Workspace窗口中,选中前面新建的工程PROJECT,从鼠标右键弹出菜单
中执行ReBuild All (VxWorks)。

Build Output窗口显示了build的过程。成功之后,生成PROJECT/default/vxWorks映像
文件。
将文件PROJECT/default/vxWorks复制到BIN目录。因为在前面配置FTP服务器的过程中,
我们将BIN目录配置为FTP用户target的HOME目录。如果你将PROJECT/default目录配置为
HOME目录,就可以省去这个复制操作。

3.7 Boot ROM
在Tornado菜单中选择Build > Build Boot ROM…

在弹出对话框中:
Select a BSP: pc486
Select an Image to Build: bootrom_uncmp
OK.
Build Output窗口显示了build的过程。不出意外的话,BSPNAME目录下面会生成bootrom
_uncmp文件。
这里选择bootrom也是可以的,其他的没有试过。

3.8 制作引导盘
将上一步生成的文件BSPNAME/bootrom_uncmp复制到BIN目录。
开始 > 运行 > cmd,打开一个命令窗口。
进入BIN目录:
C:\>cd tornado\host\x86-win32\bin
执行mkboot程序:
C:\…>mkboot A: bootrom_uncmp
当然别忘了插入一张软盘到HOST的软驱中。你应该看到
VxSys (c) Wind River Systems 1993, Version 1.2
Boot sector installed OK.
Copying bootrom_uncmp to a:bootrom.sys...

3.9 引导TARGET
将我们刚才制作的Boot ROM引导软盘插入TARGET的软驱,启动TARGET,开始引导过程。
如果目标机有显示器,应该看到
VxLd1.2 ………………
同时,TARGET在读取软盘内容,然后兰屏,出现
VxWorks System Boot


Copyright 1984-1998 Wind River Systems, Inc.

CPU: PC 486
Version: 5.4
BSP version: 1.2/0
Creation date: Dec 30 2002, 16:38:32

Press any key to stop auto-boot...

7
6
5

[VxWorks Boot]:

在 [VxWorks Boot]: 提示符下,有几个常用的命令:
命令 描述
h或者? 帮助,显示可用命令列表
@ 加载并执行文件,相当于L和G 0x108000 (config.h中配置的开始执行的缺省值)
P 显示当前引导参数值
C 修改引导参数
L 根据当前引导参数加载文件,但是不执行
G addr 从十六进制地址addr开始执行

如果配置了串口控制台,VxLd 1.2 …… 之后的内容都会在超级终端而不是显示器上面
显示。超级终端观察引导过程:

敲入”@”命令下载并运行映像,结果为:
[VxWorks Boot]: @

boot device : elPci
unit number : 0
processor number : 0
host name : xmdong
file name : vxWorks
inet on ethernet (e) : 10.10.0.151
host inet (h) : 10.10.0.150
user (u) : target
ftp password (pw) : target
flags (f) : 0x0
target name (tn) : target

Attached TCP/IP interface to elPci0.
Attaching network interface lo0... done.
Loading... 511328 + 9984 + 32480
Starting at 0x108000...

Attached TCP/IP interface to elPci unit 0
Attaching interface lo0...done


VxWorks

Copyright 1984-1998 Wind River Systems, Inc.

CPU: PC 486
VxWorks: 5.4
BSP version: 1.2/0
Creation date: Dec 31 2002
WDB: Ready.



在HOST FTP Server中可以看到通过网络连接下载映像文件的过程(根据Log Options的
不同,窗口中显示的信息可能有些不同)。

3.10 Target Sever
选中Tornado菜单 Tools > Target Server > Configure…,出现Configure Target
Servers对话框:
Target Server: Configuration 1
Target Server Properties:
Back End: wdbrpc
Core File and Symbols: File “C:\Tornado\host\x86-win32\bin\vxWorks”
其他属性应该不需要改动。
Target Name/Target Address: target
Command Line: tgtsvr.exe target -V -B wdbrpc -c
C:\Tornado\host\x86-win32\bin\vxWorks
OK.
然后再打开Configure Target Severs对话框,
在Target Sever下选中Configuration 1,
Launch.
出现target@xmdong Log Console窗口:

3.11 Shell

在Tornado工具条的下拉列表框中选中target@xmdong,然后用”->i”形状的按钮启动一
个shell。


4 串口控制台
4.1 什么是串口控制台
串口控制台(Serial Console)是指在Host/Target环境中,通过串口终端(Terminal)
来做TARGET的标准输入/输出控制台。这样,我们可以完全通过运行于HOST的终端软件来
操作TARGET。
串口控制台的好处是显而易见的:它可以精简TARGET的硬件,不再需要PC的显示卡、显
示器、键盘等设备(本地控制台)。另外,通过终端软件,我们可以更容易地回滚(rol
l back)查看“滚上去”了的输出信息。

4.2 配置方法
在BSPNAME/config.h 中有这样几句(470行附近):
#if TRUE
#define INCLUDE_PC_CONSOLE /* KBD and VGA are included */
#endif /* TRUE/FALSE */
只需要将TRUE改为FALSE即可,也就是说,去掉INCLUDE_PC_CONSOLE的定义。因此,不改
动上面3句,而是在后面加上这么一句也是同样的效果:
#undef INCLUDE_PC_CONSOLE
除此之外不需要改动什么,但是要注意确认一下BSP中有关串口的设置。下面列出的是co
nfig.h和configAll.h中定义的缺省值,如果你使用不同的串口设置,则要做相应的修改

#define NUM_TTY 2 /* number of tty channels */
#define CONSOLE_TTY 0 /* console channel */
#define CONSOLE_BAUD_RATE 9600 /* console baud rate */
CONSOLE_TTY的值为0或者1分别表示TARGET使用COM1或COM2与HOST连接;CONSOLE_BAUD_R
ATE设定了串口的波特率,常用9600bps.

4.3 终端软件
Windows主机常用的终端软件是“超级终端”,注意配置与目标机串口配置相符,也就是
说,波特率应该是9600bps, 其他配置一般为8位数据位,1位停止位,无校验位(通常表
示为8-N-1)。

另外,“ASCII码设置”对话框一般采用如下设置。

在这种配置下,目标机引导过程中我们可以判断串口是否已经连通:在超级终端串口中
敲入一串回车,如果光标有换行,说明串口已经通了;如果光标纹丝不动,则串口还没
有通,检查一下串口设置、串口直连电缆(2、3引脚交叉,5对接即可)。

4.4 几点说明
n 我们这里配置的串口是为了使用serial console,请不要与串口连接的调试弄混。本
文档中这样配置的环境为,软盘引导目标机,网络连接下载映像,网络连接下载模块,
网络连接调试,串口控制台。
如果使用串口进行下载、调试,那么前面讲的很多设置都要更改(很多与WDB_???有关)
,此处不再赘述。
n 据说(未证实),使用串口控制台应该不需要对缺省的BSP做任何改动,BOOT ROM引导
时,输出信息会首先送到目标机的本地控制台(显示器),串口配置生效之后,如果串
口上面有输入(比如在终端软件中敲几个回车——当然,这里的前提是串口本身配置正
确,是可以通的),则目标机的输出会重定向给串口,这时就会在串口终端看到引导信
息,同时目标机本地控制台失效。
听起来这是比较合理的实现方法,不幸的是我们遇到的情况并非如此。在去掉INCLUDE_P
C_CONSOLE的定义之前,我们不能在串口上得到任何输出。之前曾使用各种方法测试了串
口,花费了不少时间,最终得到这个结果,因此我们专门用一章来描述串口控制台的配
置。
产生这种情况有可能是我们的配置仍然不对造成的,也有可能是我们的软件有问题。
n

(END)
文章录入:fengfeiyi    责任编辑:fengfeiyi 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
  • 基于VxWorks实现自动发送彩信…

  • VxWorks实时操作系统下MPC82…

  • VxWorks及其在综合航空电子系…

  • 嵌入式移动数据库的特性

  • 嵌入式系统与普适计算

  • 利用VxWorks作Internet电话网…

  • Tornado开发工具

  • VxWorks组成部分

  • Vxworks下8139驱动加载step …

  • VxWorks/Tornado建立调试环境…

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)