admin 管理员组文章数量: 887021
2024年2月7日发(作者:x86汇编指令pdf)
Tornado开发环境下使用Vxsim进行网络仿真
尹志伟(zhiweiyin1985@)
一、 背景
由于是初学VxWorks,现在没有相应的开发板,于是乎采用VxWorks环境自带的仿真器进行仿真。对于基于单机环境Demo程序,如任务间通信,可以顺利进行;而对于网络仿真或者是串口仿真,就不是那么顺利了。今天偶就碰到了这个问题。由于偶用的VxWorks是一个D版软件,公司虽然有可以用的Tornado2.0开发工具,但是由于这个程序比较大(有几百M吧),必须用移动硬盘采能拷过来,而本人目前还没买移动硬盘,所以嘛,就只好先用这个D版在win32环境中模拟一把。
编写了一个简单程序(创建Downloadable工程),简单的测试目标机有几个Socket端口在侦听状态。Code->Compile->link通过完毕,执行download 出错提示:
errors-while-downloading :/Tornado2.0Forx86/target/proj/KernelTest/SIMNTgnu/:
_socket
_hostGetByName
_connect
_inet_addr
我的第一感觉就是SIMNNTgnu模拟的有没包括网络支持包。怎么解决呢,难道我还要重新创建一个映像不成?用百度搜了一把,终于有点收获。
要利用Tornado开发环境建立网络仿真只要按照以下步骤操作即可:
二、 操作步骤
2.1 软件环境:
Tornado 2.2(.1) 和 VxWorks 5.5(.1)
说明:具体哪个版本支持本文所说的网络仿真不明,上面指出的版本信息是测试使用的版本,其他版本未进行测试,这个版本下测试通过。
2.2 必需条件:
Tornado中的simulator必须是full simulator(可在Tornado 点 Help->About->Details查看,在安装Tornado的时候也能查看)。full simulator具有integrated simulator所有的功能,而且还能进行网络仿真,至于安装的是哪一个simulator是由License决定的。
2.3 步骤:
1
2.3.1 安装ULIP适配器
在控制面板里选择"添加删除硬件"->"添加/排除设备故障"->"添加新设备"-> "从列表选择硬件"->"网卡"->"从磁盘安装",接着选择tornado/host/x86-win32/bin下的,然后确定并关闭窗口。
安装完成之后,在ipconfig /all的输出中可看到多了一个网卡windriver ulip。
说明:网卡是必须要安装的。
2.3.2 配置ULIP适配器
选择刚刚安装好的网卡的属性,设置IP:在IP栏输入192.168.255.254(可以是254),子网掩码设为255.255.255.0,点高级,在wins页选择禁用TCP/IP上的NETBIOS,然后确定关闭。
设置完成后可用ping 192.168.255.254验证适配器是否工作正常。
说明:之所以将这个IP的最后一个数字设置成254,是因为vxsim的IP是从1开始递增的,这里将Windows宿主机中该网卡的IP设置成254应该是出于避免冲突的考虑。
2.3.3 开启服务
在控制面板=>计算机管理=>服务中,启动Routing and Remote Access这个服务,并将该服务设为自动启动。
2.3.4 修改Tornado的config文件
文件位置:Tornado2.2targetconfigsimpcconfig.h,
#if FALSE /* 将原先的TRUE改成FALSE */
#undef INCLUDE_NETWORK
#undef INCLUDE_NET_INIT
#undef WDB_COMM_TYPE
#define WDB_COMM_TYPE WDB_COMM_PIPE
#undef WDB_TTY_TEST
#else /* !TRUE */
#define INCLUDE_END
#undef INCLUDE_WDB_SYS /* system mode not supported on full simulator */
#undef WDB_MODE
#define WDB_MODE WDB_MODE_TASK /* do not allow switch to system mode
*/
#endif /* TRUE */
补充说明:这项修改必须在第五步新建工程之前完成,因为新建Bootable类型的 2
工程时,如果选择Vxsim作为目标机(即BSP选择simpc),Tornado会根据config.h文件的内容链接生成相应的BSP。切记一定要在建立工程之前做,否则无效!!!
2.3.5 新建工程
新建一个bootable的工程,BSP选为simpc,然后编译。
进一步的验证实验:如果你想检验一下网络功能,可在workspace的vxworks页的network components->networking protocols->network applications->ping client点右键include ping client,重新build。
说明:如果你比较自信,ping验证可以不做。但是还是推荐走一次流程。因为网络程序的调试中,收发两方不通是最常见的问题,如果发生这样的情况,为了确保应用软件的接口是通畅的,还是需要做这个验证的事情的。
一定要先修改config文件再新建工程,要不然网络仿真仍然无法使用。对于在修改config.h文件之前建立的工程,删了重新建立吧,不然还是没法使用网络仿真!!(亲自实践过,这是必须的!!!)
2.3.6 启动目标仿真机(Vxsim)
Launch simulator,选择custom-built simulator,浏览选中刚才编译出来的,processor no.设为0(full simulator可支持16个simulator,并且能够互相通信,它们的processor no.分别是0-15),确定。
说明:如果想在一台计算机上就做网络仿真,即用两个simulator做网络通信的两方时,注意启动simulator时将process no选为不同的值,并按照需求为两个simulator配置不同的IP地址。
2.3.7 启动Target Server
Launch target server,关闭Launch simulator后会提示你launch target server,点Details,选中Full simulator,修改上面的命令行参数,将C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/tsfs改为系统中存在的目录,点OK启动target server,然后你可以双击窗口右下方的target server图标查看启动情况。当然你也可以通过Tornado菜单(Tools->target server->configure)进行target server的配置并启动它。
2.3.8 检验网络仿真是否可用
如果Target server启动成功,你点launch shell启动一个shell,输入"ping "host的ip",5",回车,ping通了就说明网络仿真已经成功。
3
2.3.9 simulator与其它主机的通信:
假设host0(你的主机,simulator运行于此机上)IP为10.12.9.113,host1的IP为10.12.9.129,如果host1想与simulator通讯,只需在host1的路由表中增加一项:route add
192.168.255.1 10.12.9.113 metric 1,然后可以分别在host1上ping 192.168.255.1和simulator上ping 10.12.9.129进行验证。
三、 后记:
建立网络仿真的环境的过程,需要重建BSP,重新生成。(看来开头说的没错)。至于怎么重建BSP不是一句话能说清楚的,
建议看一下这个方面的书,偶以前也没搞过,自己摸索吧。呵呵。。
4
版权声明:本文标题:vxworks网络仿真 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1707284465h513651.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论