学习vxworks中遇到的问题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

* :::::

* ::::

*/

#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 4

IMPORT 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_END

sysRtl81x9PciInit ();

#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。)

相关文档
最新文档