我的虚拟机环境:VMware® Workstation,7.1.4 build-385536
Tornado2.2.1,即vxworks5.5.1版本
其中文章中用到的文件下载处:http://download.csdn.net/detail/dijkstar/4377523
已经做好了的虚拟vxWorks系统放在:http://download.csdn.net/detail/dijkstar/5173934,可以直接放进VMware® Workstation6.5 ~7 中使用,自己则要改动bootrom.sys,怎么创建和放进去,见下面文章!(2013-03-23编辑)
已经生成vxworks的工程配置文件在:http://download.csdn.net/detail/dijkstar/5174256;(2013-03-23编辑)
首先是在虚拟机上建一个基于DOS的运行环境,磁盘大小250M。用到的工具为ramdisknt15和dos622的映像。如何创建这个虚拟机,参考文章《VmWare+VxWorks高阶教程》。另外说明的是,一旦将虚拟机磁盘分好区并格式化后,除去按文章中将数据拷贝到软驱A,进入虚拟机后再拷贝到虚拟机的C盘方法外,windows可以使用“映射”磁盘的方式和虚拟机交互数据,如下图,虚拟机的c盘直接映射为windows的Z盘,这样交互数据很方便。
另外提示,工具ramdisknt15是在windows启动进入桌面后,才创建虚拟软驱;而工具vfloppy的用途是在windows系统刚启动时,创建一个类似“一键恢复系统”的菜单,点击该菜单,直接进入创建的虚拟软驱。因此,ramdisknt15适合用在虚拟机环境中,做实验用;而vfloppy则可以直接做实际项目、工程使用。
(一旦创建好了上述虚拟DOS系统, ramdisknt15就不再使用了!)
直接使用已经做好了BSP【vmware】文件夹,拷贝到“C:\Tornado2.2\target\config”下;(BSP【AMD】是为了配合《VmWare+VxWorks高阶教程》学习用的,);
接下来是修改网卡文件、config.h等等的配置的问题,直接按文章《VmWare+VxWorks高阶教程》一步一步做,先不要加入后面的windml部分。ln97xEnd.c和ln97xEnd.h已经放好,按文章方法覆盖即可;修改config.h配置时,需要注意的是,文章中这句:
“h=192.168.237.1 e=192.168.237.88”分别指的是host(windows XP即操作的主机),和end(准备运行vxworks的虚拟机),它们的定义要查询【网络连接】-> 【VMware Virtual Ethernet Adapter forVMnet1】(【VMnet1】对应的是Host-only,而【VMnet8】对应的是NAT)的IP地址设置情况,将它们设置一致即可:
虚拟机中实际跑起来后的配置为:
编译【vmware】后,
还要运行:
@echo off
rem Command line build environments
set WIND_HOST_TYPE=x86-win32
set WIND_BASE=C:\Tornado2.2.1_x86
set PATH=%WIND_BASE%\host\%WIND_HOST_TYPE%\bin;%PATH%
objcopypentium -O binary --gap-fill=0 bootrom bootrom.sys
得到 bootrom .sys ,该文件才是最终在【最后虚拟机中的文件\config.sys】中被加载的:
在网上还看到有将ln97xEnd.c和ln97xEnd.h直接放在【C:\Tornado2.2\target\config\AMD】下,比如【vmware】里面的内容,是将ln97xEnd.o放在了Makefile中直接编译,省去了《VmWare+VxWorks高阶教程》中修改libdrv.a 的部分,自己可以比较【vmware】和【AMD】中Makefile文件的不同:
创建bootrom.sys没什么可说的,按照文章做即可。make.bat文件,一定要小心“set WIND_BASE=C:\Tornado2.2”的实际Tornado2按照路径。
可以在usrAppInit.c文件,在提示添加处,添加:printf("helloworld\n");一旦创建好vxworks文件,第一次还是用映射的老办法,复制到虚拟机中去; 当虚拟机VxWorks跑起来之后,在windowsXP端使用VxWorks能够ping到虚拟机,那么以后可以使用ftp软件传递修改过的VxWorks文件,供反复试验用;
两个FTP服务器使用注意事项:
一个是虚拟机引导bootrom.sys后,要从宿主机上获取vxWorks,使用的是Tornado自带的WFTPD工具(C:\Tornado2.2\host\x86-win32\bin中),用的用户名/密码是:target/target,即虚拟机是客户端,Tornado端是服务器:
另一个是一旦虚拟机中vxWorks跑起来后,它本身也是一个FTP服务器,则windows端使用一款FTP客户端工具可以登陆到虚拟机上,用的用户名/密码是:lnPci/target
当虚拟机这一端成为FTP服务器后,可以很方便的将各种.out文件下载来验证!
上述的vxWorks是使用了网络启动的方式,如果使用硬盘启动方式,则改动【vmware】的config.h:
#define DEFAULT_BOOT_LINE \
"ata=0,0(0,0)host:/ata0a/vxWorks h=192.168.237.1 e=192.168.237.88 u=target pw=target"
/* "lnPci(0,0)host:vxworks h=192.168.237.1 e=192.168.237.88 u=target pw=target"*/
#elif (CPU == PENTIUM2)
编译BSP之后,再使用【vmware】中的make1.bat生成bootrom.sys,使用磁盘映射方式拷贝到DOS盘中,即可实现了硬盘加载vxworks!