Socket通信的网络仿真
2011年06月25日
这学期选了一门嵌入式系统实验的课,就是学习Tronado开发环境下的VxWorks实时操作系统,没有考试,只是要求做三个实验的作业。我是一个讲信用的人,既然研究生的其它课程基本不去上课,这门课我果断决定不去了。当然,作业还是要做的,当我发现我第二个实验从网上抄的源代码竟然是我们嵌入式老师自己写的然后放在自己博客上的,我决定最后一个Socket通信的实验要自己独立完成――回头想想这是一个多么二的决定啊……
废话不多说,直奔主题。
VxWorks的Socket通信的知识网上很多,可是一般都是PC和VxWorks开发板之间(服务端/客户端模式)的双工通信,可是大部分初学者是没有开发板的,所以我们需要实现的是利用VxWorks自带的仿真机Vxsim进行Socket通信。
具体步骤:
1、配置ULIP适配器
VxWorks进行Socket通信必须首先添加网卡。
在PC的控制面板里选择"添加删除硬件"->"添加/排除设备故障"->"添加新设备"-> "从列表选择硬件"->"网卡"->"从磁盘安装",接着选择tornado/host/x86-win32/bin 下的netULIP.inf,然后确定并关闭窗口。
安装完成之后,PC上运行CMD,输入命令ipconfig /all可看到PC上多了一个网卡WindRiver ULIP。
2、配置ULIP适配器
选择刚刚安装好的网卡的属性,设置IP为 192.168.255.254(可以是x.x.x.254,这样仿真器Vxsim的IP就会自动设置为x.x.x.1,x.x.x.2,……,避免了IP冲突),子网掩码设为255.255.255.0,在wins 页选择禁用TCP/IP 上的NETBIOS,然后确定关闭。
3、开启服务
在控制面板=>计算机管理=>服务中,启动Routing and Remote Access这个服务,并将该服务设为自动启动。
4、修改文件
由于我们后面要新建Bootable类型工程,并且如果选择Vxsim 作为目标机(即BSP 选择simpc),Tornado 会根据config.h文件的内容链接生成相应的BSP。修改文件后生成的BSP支持网络通信。
文件位置:Tornado2.2\target\config\simpc\config.h,
#if FALSE /* 将原先的TRUE改成FALSE */
#undef INCLUDE_NETWORK
#undef INCLUDE_NET_INIT
#undef WDB_COMM_TYPE
5、新建Bootable工程
新建Bootable工程,BSP 选择simpc,然后编译,Rebuild VxWorks.exe。
如果我们想检验一下网络功能,可在workspace的vxworks 页的network components->networking protocols->network applications->ping client点右键include ping client,重新build,然后在Shell中输入命令:ping(“主机IP地址”,5),这样我们就能在Shell中看到ping通的结果。
6、Socket通信
我们选择两台PC,分别建立downloadable工程,一个加入服务端程序,一个加入客户端程序,并且编译。
然后我们启动仿真机Vxsim,点击tool―>Simulator,选择custom-built simulator,浏览选中Bootable中编译出来的vxworks.exe,点击确定;然后在Launch Target Server中,选择“Full simulator”,点击Details,将其中C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/tsfs
2011年06月25日
这学期选了一门嵌入式系统实验的课,就是学习Tronado开发环境下的VxWorks实时操作系统,没有考试,只是要求做三个实验的作业。我是一个讲信用的人,既然研究生的其它课程基本不去上课,这门课我果断决定不去了。当然,作业还是要做的,当我发现我第二个实验从网上抄的源代码竟然是我们嵌入式老师自己写的然后放在自己博客上的,我决定最后一个Socket通信的实验要自己独立完成――回头想想这是一个多么二的决定啊……
废话不多说,直奔主题。
VxWorks的Socket通信的知识网上很多,可是一般都是PC和VxWorks开发板之间(服务端/客户端模式)的双工通信,可是大部分初学者是没有开发板的,所以我们需要实现的是利用VxWorks自带的仿真机Vxsim进行Socket通信。
具体步骤:
1、配置ULIP适配器
VxWorks进行Socket通信必须首先添加网卡。
在PC的控制面板里选择"添加删除硬件"->"添加/排除设备故障"->"添加新设备"-> "从列表选择硬件"->"网卡"->"从磁盘安装",接着选择tornado/host/x86-win32/bin 下的netULIP.inf,然后确定并关闭窗口。
安装完成之后,PC上运行CMD,输入命令ipconfig /all可看到PC上多了一个网卡WindRiver ULIP。
2、配置ULIP适配器
选择刚刚安装好的网卡的属性,设置IP为 192.168.255.254(可以是x.x.x.254,这样仿真器Vxsim的IP就会自动设置为x.x.x.1,x.x.x.2,……,避免了IP冲突),子网掩码设为255.255.255.0,在wins 页选择禁用TCP/IP 上的NETBIOS,然后确定关闭。
3、开启服务
在控制面板=>计算机管理=>服务中,启动Routing and Remote Access这个服务,并将该服务设为自动启动。
4、修改文件
由于我们后面要新建Bootable类型工程,并且如果选择Vxsim 作为目标机(即BSP 选择simpc),Tornado 会根据config.h文件的内容链接生成相应的BSP。修改文件后生成的BSP支持网络通信。
文件位置:Tornado2.2\target\config\simpc\config.h,
#if FALSE /* 将原先的TRUE改成FALSE */
#undef INCLUDE_NETWORK
#undef INCLUDE_NET_INIT
#undef WDB_COMM_TYPE
5、新建Bootable工程
新建Bootable工程,BSP 选择simpc,然后编译,Rebuild VxWorks.exe。
如果我们想检验一下网络功能,可在workspace的vxworks 页的network components->networking protocols->network applications->ping client点右键include ping client,重新build,然后在Shell中输入命令:ping(“主机IP地址”,5),这样我们就能在Shell中看到ping通的结果。
6、Socket通信
我们选择两台PC,分别建立downloadable工程,一个加入服务端程序,一个加入客户端程序,并且编译。
然后我们启动仿真机Vxsim,点击tool―>Simulator,选择custom-built simulator,浏览选中Bootable中编译出来的vxworks.exe,点击确定;然后在Launch Target Server中,选择“Full simulator”,点击Details,将其中C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/tsfs