首页 > 代码库 > vmware 虚拟机上装vxwoks5.5全过程

vmware 虚拟机上装vxwoks5.5全过程

vmware 虚拟机上装vxwoks5.5全过程  

2011-06-22 10:06:51|  分类: VMware相关|举报|字号 订阅

 
 

最近在学习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/

vmware 虚拟机上装vxwoks5.5全过程