当前位置:文档之家› 学习vxworks中遇到的问题

学习vxworks中遇到的问题

1预期目标用两台pc机建立起由网络进行通讯的vxworks开发环境,开发工具是tornado 2.2 for pentium,vxworks版本为5.5。

2硬件描述宿主机是一台装有windows xp和tornado 2.2的带有网络接口的笔记本电脑,ip设置为192.168.1.101,目标机是研华的610L型号工控机,后发现在vxworks系统下驱动工控机自带网卡有困难,于是购置了一块tp-link的pci网卡,装在工控机上,网卡芯片是realtek 8139d。

3建立开发环境的方案目标工控机上已经装有windows xp,文件系统是fat32,经试验得知工控机支持usb-zip启动,考虑到不对windows系统产生影响,决定使用u盘启动作为系统启动的方式。

用u盘启动bootrom后通过网络下载存放在笔记本电脑上的vxworks系统镜像,宿主机和目标机通过网络通讯,从而建立起x86构架下的vxworks开发环境。

4工作现状u盘启动盘通过ultraISO和tornado 2.2自带的一些工具制作成功,并能在工控机上把bootrom 启动起来到命令行,但是在加载vxworks镜像的时候不能成功。

5遇到的问题在bsp中添加rtl8139网卡驱动,添加驱动的过程如下(a)下载rtl8139驱动vxworks-8139(140),是适用于tornado 2.0的。

(b)将目录下的h和src两个文件夹复制到tornado 2.2下target文件夹里,把sysRtl81x9End.c 复制到bsp文件夹下。

(c)运行命令行,在C:\Tornado2.2\target\src\drv\end\unsupported目录下运行make CPU=PENTIUM 成功,但有警告(环境变量已设置好),在C:\Tornado2.2\target\lib\objPENTIUMgnuvx目录下生成了rtl81x91.o。

(d)修改bsp文件夹里的config.h修改的第一处#elif (CPU == PENTIUM)#define DEFAULT_BOOT_LINE \"rtl(0,0)host:vxWorks h=192.168.1.101 e=192.168.1.102 u=target pw=target"修改的第二处#define INCLUDE_END /* Enhanced Network Driver Support */#undef INCLUDE_DEC21X40_END /* (END) DEC 21x4x PCI interface */#undef INCLUDE_EL_3C90X_END /* (END) 3Com Fast EtherLink XL PCI */#undef INCLUDE_ELT_3C509_END /* (END) 3Com EtherLink III interface */#undef INCLUDE_ENE_END /* (END) Eagle/Novell NE2000 interface */#undef INCLUDE_FEI_END /* (END) Intel 8255[7/8/9] PCI interface */#undef INCLUDE_GEI8254X_END /* (END) Intel 82543/82544 PCI interface */#undef INCLUDE_LN_97X_END /* (END) AMD 79C97x PCI interface */#undef INCLUDE_ULTRA_END /* (END) SMC Elite16 Ultra interface */#define INCLUDE_RTL_81X9_END /* Realtek 81x9 Fast Ethernet Controller */修改的第三处#if defined (INCLUDE_LN_97X_END) || defined (INCLUDE_EL_3C90X_END) || \ defined (INCLUDE_FEI_END) || defined (INCLUDE_DEC21X40_END) || \defined (INCLUDE_GEI8254X_END) || defined (INCLUDE_AIC_7880) || \defined (INCLUDE_WINDML) || defined (INCLUDE_USB) || \defined (INCLUDE_RTL_81X9_END)# define INCLUDE_PCI修改的第四处#define INCLUDE_PC_CONSOLE /* PC keyboard and VGA console */(e)修改bsp文件夹里的configNet.h修改的第一处#ifdef INCLUDE_RTL_81X9_END/** load string format* <devMemAddr>:<devIoAddr>:<pciMemBase:<vecnum>:<intLvl>:<memAdrs>:* <memSize>:<memWidth>:<csr3b>:<offset>:<flags>*/#define RTL_81X9_BUFF_LOAN_0 1#define RTL_81X9_LOAD_FUNC sysRtl81x9EndLoad#define RTL_81X9_LOAD_STR_0 endLoadStr[0] /* First entry loc */#define RTL_81X9_LOAD_COUNT 4IMPORT END_OBJ * RTL_81X9_LOAD_FUNC (char *, void *);char endLoadStr [RTL_81X9_LOAD_COUNT] [END_DESC_MAX];#endif /* INCLUDE_RTL_81X9_END */修改的第二处#ifdef INCLUDE_RTL_81X9_END{0, RTL_81X9_LOAD_FUNC, RTL_81X9_LOAD_STR_0, TRUE, NULL, FALSE},#endif /* INCLUDE_RTL_81X9_END */(f)修改bsp文件夹里的sysLib.c修改的第一处#ifdef INCLUDE_RTL_81X9_END#include "sysRtl81x9End.c"#endif /* INCLUDE_RTL_81X9_END */修改的第二处#ifdef INCLUDE_RTL_81X9_ENDsysRtl81x9PciInit ();#endif /* INCLUDE_RTL_81X9_END */(g)编译不通过,显示没有rtl81x91.h的规则。

之后在bsp目录下的makefile文件中的TGT_DIR = $(WIND_BASE)/target一行下面添加了一行ADDED_MODULES += rtl81x9.o,并把rtl81x9.o拷贝到bsp目录下。

编译通过并启动运行,但是加载vxworks镜像不成功。

(好像也可以改另外一处:MACH_EXTRA = rtl81x9.o。

)运行时的一些现象如下目标机即工控机运行到bootrom后自动加载笔记本电脑里的vxworks镜像,屏幕显示Loading (XXXXX)Starting at 0x308000然后停止不动了宿主机即笔记本上的ftp窗口没有任何信息显示笔记本的网络接口灯是亮的,在目标机显示下载的时候还有闪烁,感觉网络链路上有数据传送。

在改变宿主机ftp里的vxworks镜像时,loading后面的数字也随着变化,与生成vxworks镜像时显示的大小对应,感觉目标机下载镜像了。

6不解之处1)不知道经过上面的步骤是否将rtl8139驱动添加成功,在书中看到还有添加网卡中断号宏定义的内容,但是找不到添加的位置。

2)不知道除了添加网卡驱动之外,是否还需要对bsp其他地方进行必要的修改。

对照你们做的半实物仿真系统电脑里的bsp包还发现了一些修改,比如对INCLUDE_WINDML,VIRTUAL_WIRE_MODE,RAM_LOW_ADRS,RAM_HIGH_ADRS的修改,这些是否是必须的。

3)不知道对vxworks的镜像制作有没有要求,上面的试验中用到的系统镜像是对使用了修改后的bsp建立的可启动工程编译得到的,除了添加了shell没有对工程其他地方进行修改。

(后来在建立工程后,在工程的Builds/default/property/macros中,在Name填入ADDED_MODULES,在Value中填入rtl81x9.o,然后点Add/Set,点Apply,OK,编译得到系统镜像,用这样的镜像后,宿主机的ftp服务器界面显示下载成功,目标机还是下载后就停止不动了。

)4)另外在目标机上现安装了两块网卡一块为8139d另一块为intel的pro/1000 Pl的千兆网卡,在试验时没有将千兆网卡卸下,不知是否对8139的链接产生影响。

5)对于处理器的型号,我们选择的是pentium,而半实物仿真系统里使用的是pentium2,不知是不是处理器型号选择不正确的原因。

6)不知道怎么样能够在wdb agent和target server建立连接之前进行调试,很是苦恼,只能改一点,试一次。

由于本人刚刚接触vxworks,思路还不太清晰,表达可能会有疏漏,看完上面的内容可能花费你不少时间,对此深表歉意。

对于上面提到的不解之处,希望你能帮忙讲解一下,不胜感激。

相关主题