Embedded 版 (精华区)

发信人: wanily (醉了酒的老鼠), 信区: Embedded
标  题: VxWorks调试环境的建立(整理)
发信站: 哈工大紫丁香 (2003年06月01日15:13:55 星期天), 站内信件

打通VxWorks调试环境 Step by Step
 
dot <anonymou@163.com>
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



=====================补充==========================



1.做target启动盘的时候,
(1).对于vxworks默认不支持的网卡类型,比如realtech 8139.一般可以到网上下载其vx
works下驱动源程序,
 
copy到Tornado\target\h\drv(H文件)和D:\Tornado\target\src\drv(C文件)的相应目录
下。SET相应CPU类型后
 
,用目录下makefile编译。然后在相应类型BSP的config.h中增加网卡类型宏定义(defi
ne的宏可以从下载的驱
 
动H文件中获得),就可以做出启动盘了。
(2).对于vxworks默认支持的网卡类型,在修改config.h的时候除了define相应类型宏以
外,还要注意网卡的I/O
 
地址和中断号,一般网卡驱动光盘中都有一个DOS下的setup程序可以检测得到这两个值
。比如我曾经做过两种


 
不同的ENE网卡,有如下两中配置
#define IO_ADRS_ENE 0xC000(0xE000)
#define INT_LVL_ENE 0x0b
(3)对于不同类型的网卡,可能其kernel文件(即名字为vxworks的文件)也要重新做。比
如ENE网卡一般在做
 
kernel的时候,在network devices中include "BSD attach interface"和"BSD interfa
ce support",同时在BSD
 
Ethernet drivers中include "ENE nettif driver"(可以在此填上对应的I/O地址和中断
).而对于realtech
 
8139,做kernel就要include "END attach interface"和"END interface support".
 
btw:target启动盘的flags (f)参数可以设置为0x08,启动将不用等那讨厌的8秒钟,呵呵

--
     zZZZZ                                                                 /┃  
    ⊙           ⊙              ⊙            ⊙                       ⊙/ ┃  
┃/ >▃▃▃     ┃|\-▃▃▃   ┃|\-▃▃▃    ┃|\-▃▃▃    ▃▃▃     <∩  ┃  
┣━>  █       ┣━ \  █    ┣━>   █     ┣━>   █       █        ||      
┃ ┃  █       ┃ ┃   █    ┃ ┃   █     ┃ ┃   █       █    █████  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  ████████  

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.226.4]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:209.192毫秒