vxworks通过Simulator和windows实现TCP通信

来源:互联网 发布:php开源框架排行榜 编辑:程序博客网 时间:2024/06/05 00:19

回归正题:

使用的环境是workbench3.1和vxworks6.7。

之前的一个TCP工程里,包含了服务端和客户端的socket建立和通信,在vxsim里运行,通过终端可以看到TCP通信成功。但在windows下用C#开发的TCP客户端和服务端都无法和vxsim连接,说明simulator的网络和windows没通。

网上资料太少,只好去啃英文手册《Wind River VxWorks Simulator User's Guide, 6.7》,在第5章Networking with the VxWorks Simulator里有非常详细的说明。这里记录一下。

1、Setting Up the Network Daemon

这一步是开启一个服务。打开Start> Wind River>VxWorks 6.7 and General Purpose Technologies>VxWorks Development Shel(需要用管理员权限打开)。

在命令行输入:vxsimnetds_inst.exe /u   卸载之前装的vxsimnetd

输入:vxsimnetds_inst.exe   安装the new network daemon

成功后在windows下开启服务里的wind river对应服务即可。

很BUG的是,我之前都安装成功了,可以实现通信了,电脑重启后就开启不了这个服务项了。。。小白这里发现每次开启这个服务后,就会意外终止了。所以我就直接开启的是vxsimnetd.exe,就会一直阻塞,此时服务就开启了,用完了在关掉就是了。在workbench目录下vxworks-6.7\host\x86-win32\bin里有对应刚刚的命令程序


2、 Installing the Host Connection Driver

这一步是安装simulator和windows通信的虚拟网卡驱动WRTAP driver

这里说win7 32位下安装方法,win7 64的就别想了,驱动只用32位的,不过可以把wrtap.inf改了(我是没成功)

WIN+R打开运行,输入hdwwiz.exe打开添加硬件向导,选择添加网络适配器,从磁盘安装WorkBenck\vxworks-6.7\host\x86-win32\bin目录下的wrtap.inf安装成功即可。

在网络适配器选项里就可以看到对应的WRTAP了。


3、打开workbench

在target里选new connection,接着选择wind river vxworks 6.x Simulator Connection后NEXT

在vxworks boot parameters里选择advanced boot parameters,在boot device里simnet

在inet on ethernet里输入vxsim通信的IP,默认填写192.168.200.1(和WRTAP的IP在同一网段)

选择OK即可,然后一路NEXT到Finish。

成功后就添加了一个新的vxsim2,运行RTP程序的时候选择这个新的vxsim2即可。

连接vxsim2,输入ifconfig看到之前配的ip:192.168.200.1

你就可以在windows里ping 一下这个IP,通了恭喜你网络就应该是通的了。


其他可以参考:http://blog.csdn.net/mndlyt/article/details/20072043



废话: 之前一直在封装自己的TCP函数,但一旦要做成工程产品,就发现原来的函数好多都没考虑到,如加入双缓冲队列,初始化失败重启,网络状态检测等等。以后还需要努力啊。这里推荐给大家一本《vxworks软件开发项目实例完全解析》,里面有不错的工程程序框架,对我这种小白还是非常实用的。

0 0