打通VxWorks调试环境Step by Step1 引言1.1 编写目的概要说明如何建立使用Tornado开发、调试VxWorks的环境(X86版本)。
1.2 背景1.3 定义HOST:主机,运行Tornado集成环境,FTP Server,Target Server,以及编辑、build工程、下载目标文件的各种软件工具;TARGET:目标机,HOST产生的vxWorks映像运行的位置,对于X86版本来说也是一台PC;TORNADO:C:\Tornado,安装Tornado的路径;BSPNAME:C:\Tornado\target\config\pc486,BSP的路径,本例中我们选择pc486;PROJECT:C:\Tornado\proj\Project2,我们自己创建的工程的路径;BIN:C:\Tornado\host\x86-win32\bin,Tornado的可执行程序的路径;HOME:C:\Tornado\host\x86-win32\bin,FTP用户的根目录。
1.4 参考资料Tornado User’s G uide (Windows Version), 2.0, Edition 1VxWorks Programmer’s Guide, 5.4, Edition 12 总体描述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之间连接的方式有多种,比如串口和网络;引导TARGET的方式也有多种,当然对X86平台来说最简单的是软盘引导了。
在本文档中我们以网络连接、软盘引导为例,建立起调试环境。
主要步骤包括:HOST上启动FTP Server,配置BSP创建可以引导TARGET的Boot ROM,制作引导盘(软盘),用软盘引导TARGET,TARGET通过网络连接从HOST下载vxWorks映像文件,TARGET运行vxWorks,HOST上启动Target Server连接Target Agent,成功建立调试环境之后,就可以在HOST 生成目标模块,下载到TARGET运行,并通过Tornado集成环境进行调试。
注意:本文档中所描述的对于某些选项的选择并不一定是绝对的,只是一个行之有效的实例,仅供参考。
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 inte**ce */#undef INCLUDE_ENE /* include Eagle/Novell NE2000 inte**ce */#undef INCLUDE_ELT /* include 3COM EtherLink III inte**ce */#undef INCLUDE_ESMC /* include SMC 91c9x Ethernet inte**ce */#define INCLUDE_FEI /* include Intel Ether Express PRO100B PCI */#define INCLUDE_SLIP /* include serial line inte**ce */#define SLIP_TTY 1 /* serial line IP channel COM2 */#undef INCLUDE_ELC /* include SMC Elite16 inte**ce */#undef INCLUDE_EEX /* include INTEL EtherExpress inte**ce */#undef INCLUDE_EEX32 /* include INTEL EtherExpress flash 32 */#undef INCLUDE_EX /* include Excelan Ethernet inte**ce */#undef INCLUDE_ENP /* include CMC Ethernet inte**ce*/#undef INCLUDE_SM_NET /* include backplane net inte**ce */#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 xmdong10.10.0.151 target3.3 FTP服务器Tornado自带了一个FTP服务器软件WFTPD。
当HOST是WIN32平台时,TARGET通过网络连接,只能用FTP协议从HOST下载vxWorks映像文件。
打开FTP Server,选中Security > Users/Rights…菜单,在添加新用户对话框中:User Name: target,Password: target,Home Directory: 这里我设置为BIN,你也可以设置为其他路径,记住你的设置。
后面DEFAULT_BOOT_LINE中定义的vxWorks文件路径,就是以HOME为根目录的相对路径。
建议将vxWorks文件复制到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 ofBoot 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。
Step 1Name: Project2Location: C:\Tornado\proj\Project2 (以后我们提到PROJECT就是指这个路径)Workspace: Add to current WorkspaceStep 2Would you like to base your project on: A BSP, pc486 (也就是我们说的BSPNAME)Step 3Finish3.6 Build工程在Tornado环境的Workspace窗口中,选中前面新建的工程PROJECT,从鼠标右键弹出菜单中执行ReBuild All (VxWorks)。
Build Output窗口显示了build的过程。
成功之后,生成PROJECT/default/vxWorks映像文件。