vmware 虚拟机上装vxwoks5.5全过程
最近在学习vxworks,要在vmware虚拟的基于Pentium处理器上运行Vxworks,于是上参照网上大牛的文档,却在一些关键的地方过不去,于是广泛搜资料,费好些功夫终于把vxworks顺顺当当地请上了虚拟机。为避免初入vxworks界的同仁走同样弯路,决定把前前后后需要注意的地方都写下来,顺便也做个纪念。
总的过程分为以下几步:
1、编译网卡驱动。
2、修改一些文件。
3、编译bootrom并放到启动盘里去。
4、编译vxWorks镜像。
5、用FTP把vxWorks镜像传到虚拟机里面去。
6、配置target server,在主机上调试目标板应用程序。
我tornado安装的目录是:E:\tornado2.2\......(我第一次装tornado2.2的时候没有把数字2.2带上,教训是:编译bootram的时候通不过。)
具体步骤如下:
装tornado,这个就不用说了。
下载一个RamDiskNT装上,打开后可以设置软驱,保存,重启机子,电脑里就有软驱(A:)了。
一、编译网卡驱动
去http://www.amd.com/us-en/ConnectivitySolutions/ProductInformation/0,,50_2330_6629_2452^2454^2488,00.html网上 下载驱动:x86 END Driver for VxWorks。 双击下载的文件,不停的下一步直到完成,把C:\pcnet\vxworks_end目录下的ln97xEnd.tar1.gz文件解压缩,得到ln97xEnd.tar文件,再解压缩,得到target文件夹,把这个target文件夹放到E:\tornado2.2目录下。提示覆盖的时候点ok。
单击windows系统的开始菜单,在“运行”里输入“cmd”打开控制台程序。
输入:E:\tornado2.2\host\x86-win32\bin\ torVars.bat;
输入:cd /D E:\tornado2.2\target\src\drv\end目录,运行:
make CPU=PENTIUM tool=gnu ln97xend.o (这一步会出现重复提示,不要管它,它自己会结束。耐心点,否则驱动编译不完全)
这一步会在E:\tornado2.2\target\src\drv\end目录下生成ln97xend.o文件。
输入:cd E:\tornado2.2\target\lib\pentium\PENTIUM\common目录,并将上一步生成的文件ln97xend.o复制到此目录下。备份此目录下的
文件libdrv.a; 运行命令arpentium -d libdrv.a ln97xEnd.o,删除libdrv.a中原有的ln97xEnd模块,然后再运行命令: arpentium -ra iOlicomEnd.o libdrv.a ln97xEnd.o。
二、修改文件
打开文件:E:tornado2.2\target\config\pcPentium\config.h文件。
找到/*default boot line */那行,修改预处理条件CPU == PENTIUM分支下的定义如下: "lnPci(0,0)cherish:d:\\vxWorks h=192.168.100.145 e=192.168.100.14 u=target pw=vxworks tn=target"(我是这样设置的)
lnPci(0,0)指定了使用第0个网卡和第0个处理器
cherish是我的计算机名。
d:\\vxWorks是存放操作系统镜像的路径,后面讲用FTP传送的时候还将提到。
h=192.168.100.145 h后面跟的ip来自于主机网卡。
e=192.168.100.14 这个ip是给目标板用的,和上面的ip要在同一个网段内,且它不能和主机所在的局域网的其他主机的ip冲突。
u=target 即:用户名,后面ftp传送的时候也要用到。可随便设置
pw=vxworks 和用户名对应的密码,后面ftp传送的时候也要用到。可随便设置
tn=target 是目标板名字。可随便设置
再找到network driver options 那段文字,这是有关网卡驱动的宏定义的。这些宏里面,只要保证INCLUDE_END宏和 INCLUDE_LN_97X_END是定义状态,其它宏是未定义的就可以了。
再找到INCLUDE_PC_CONSOLE 文字,把这个宏改成定义态。
这个文件就修改完了,保存。
打开文件:E:\tornado2.2\target\config\pcPentium\sysLn97xEnd.c。找到memory-mapped IO base文字,
把前面的参数由pciRsrc[endUnit].bar[1]修改为NONE。 保存。
三、编译bootrom并放到启动盘里去。
打开Tornado开发工具,在Build菜单下选择Build Boot ROM。
在BSP列表中选择pcPentium,而在Image to build列表中分别选择bootrom和gnu。完成选择后,点击OK按钮就开始引导程序的编译了。编译
产生的文件bootrom将保存在E:\tornado2.2\target\config\pcPentium目录下。
输入 cd E:\tornado2.2\target\config\pcPentium
输入 mkboot a: bootrom。 这样软驱(a:)里就有启动虚拟机的代码了。
四、编译vxworks镜像。
创建一个“bootable VxWorks image”的工程;
选择您需要的VxWorks组件。在这个例子中我们选择了两个重要的组件:Telnet server 和 Target shell 。前者使我们可以通过Telnet协议登录到VxWorks操作系统中;后者则可以让我们通过命令行控制VxWorks系统。完成选择后就编译操作系统。把编译好的操作系统镜像放在D:\ 盘下(这由 default boot line 参数决定的)。
五、用FTP把vxWorks镜像传到虚拟机里面去
运行vmware,建立一个虚拟机。大多数才用默认设置,只有在选择操作系统的时候选“other”。ethernet的连接方式选择默认的bridge。
打开tornado2.2自带的ftp server 选择“Security”菜单下的“Users/Rights”子菜单,
先要把自带的target用户名删掉:具体这么干:把user下拉列表框点开,单击target,单击delete。 (这是default boot line 的参数决定的)
具体这么干:单击“新建 ”,输入用户名target(这是default boot line 的参数决定的),密码vxworks。路径写D:\(这也是default boot line 决定的)。然后点done。这样做是在告诉主机,虚拟机将用target用户名和主机通信。
为了便于调试,我们还要打开FTP Server的日志功能。选择“Logging”菜单下的“Logging Options”子菜单,弹出如下对话框,其中除了
“Winsock Calls”外,让其他选项全都处于开启状态。
保持FTP Server窗口处于打开状态(这样FTP服务器就处于运行状态) 。
启动虚拟机,虚拟就能从a盘启动,等待7秒后,虚拟机用ftp 从主机加载vxWorks操作系统。加载完成后,在虚拟机的vxWorks操作系统环境下输入i命令可以看到一些任务。
六、配置target server,在主机上调试目标板应用程序。
配置target server 之前,把vmware软件的ethernet 属性设为 host-only。否则target server连接不上(我在这卡了半天)。
改属性后就可以在主机的控制台窗口下ping 目标板ip 了(这里是192.168.100.14,由 default boot line参数决定)。如能ping通,说明主机和虚拟机已经连通。
打开Tornado开发环境,选择“Tools->Target Server->Configure”菜单,
在“Description”中任意填写一个名字,如“abcd”;在“Available Back”中选择“wdbrpc”,并在下面的IP地址框中填写目标机
的IP地址,这里是“192.168.100.14。由(DEFAULT_BOOT_LINE参数决定);将“Target Server Properties”下拉框更改至“Core File
and Symbols”,并在“File ”一项中选择映象的完整路径,这里是“D:\vxWorks”(由DEFAULT BOOT LINE参数决定)。
点击“Launch”按钮,就可以启动Target Server了。
再回到Tornado开发环境,在工具条上的Target Server下拉框列表中选择[email=“192.168.100.14@your_host_name]“192.168.100.14@your_host_name[/email]”。这时您会发现工具条中一些
原先处于“禁用”状态的工具按钮,现在都已经处于“激活”状态了。
现在可以编译一个应用程序,新建应用程序工程,toolchain 那选PENTIUMgnu。添加c源文件
如:#include "vxworks.h"
#include "timexLib.h"
#include "stdio.h"
void test()
{
int i=0;
while(i<100)
{
i++;
printf("%d\n",i);
}
printf("%d\n",i);
}
编译,下载。再打开tornado2.2下的shell,运行test。就可以在虚拟机上看结果了,还可以调试。
转载于:http://xingpenghe.blog.163.com/blog/static/4320699820102280181838/
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。