xp虚拟机上移植vxworks.docx
- 文档编号:11158151
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:19
- 大小:1.30MB
xp虚拟机上移植vxworks.docx
《xp虚拟机上移植vxworks.docx》由会员分享,可在线阅读,更多相关《xp虚拟机上移植vxworks.docx(19页珍藏版)》请在冰点文库上搜索。
xp虚拟机上移植vxworks
声明:
这个文档是我在虚拟机上安装vxworks期间总结出来的,并非全部原创,主要参考内容在第五章中有给出,当然还参考了别的很多内容,在此就不一一列举了。
虽然这些参考内容都大体说了在虚拟机上安装vxworks的相关流程,但或者说的不够清楚,或者缺少图片展示,或者步骤存在问题,又或者按照他们所说的进行修改运行出来结果并非他们文中展示的那样,让我这个初涉vxworks的小白,折腾了快一周才成功将vxworks移植到虚拟机上,所以在成功移植后,我觉着应该写下这个文档,给以后要移植的人一个清晰、正确的指导。
若有错误之处,还请大家指出。
需要的安装包:
1、Tornado安装包:
[风河VxWorks].WINDRIVER.TORNADO.V2.2.FOR.PENTIUM.CD1.ISO
[风河VxWorks].WINDRIVER.TORNADO.V2.2.FOR.PENTIUM.CD2.ISO
2、虚拟光驱工具:
任意
daemon4301-lite.exe
3、VMware安装包
VMware-workstation-6.5.0-118166.exekeygen.exe密钥
注:
我最开始安装的是VMware9.0(VMware-workstation-full-9.0.0-812388.exe),但运行到2.3节,选择从软盘A启动时,该软件无法连接软盘A,设置的时候“连接物理光驱”只有“自动检测”可以选择,从A盘拷东西到虚拟机C盘时,也会报“NotreadyreadingdriveA”,重装该软件也不行。
不知是9.0.0版本身的问题,还是我下载的软件包有问题,后来想换个版本试一下,安装了6.5.0,运行一切良好,未出现问题。
4、生成虚拟软驱的软件
ramdisknt15.rar——若想删去虚拟软盘,直接卸载该软件,重启电脑即可。
5、AMD的PC-NET网卡的VxWorks系统驱动
vxworks_end.exe
6、dos启动镜像
MS-DOS6.22启动盘镜像DOS622.IMG.rar
一、Tornado的安装
大部分地方选择默认,部分要注意的地方如下:
1)首先安装虚拟光驱软件DAEMONToolsLite
2)分别打开CD1和CD2两个ISO文件
3)自动安装在C:
\Tornado2.2,输入序列号如下:
CD1:
cAQ8i-qP2I&-g$vT6-3&gjw-bEk9g
CD2:
A7KbB-Rd37p-hNFBE-kzgaT-b9gpC
4)拷贝CD1的CRACK目录下的license.dat到c:
\Tornado2.2\flexlm目录下,如果没有这个目录,自己建一个。
5)右键“我的电脑”——属性——高级——环境变量——在“用户变量”(我也不确定该新建哪种,我建的是“用户变量”,运行起来没有问题)下方选择“新建”,变量名为LM_LICENSE_FILE,值为c:
\Tornado2.2\flexlm\license.dat
安装完tornado后,首先要解压vxworks_end.exe文件三次出现target文件夹,做个c:
\Tornado2.2\target的备份,然后用target\h\drv\end\ln97xEnd.h和target\src\drv\end\ln97xEnd.c、Makefile覆盖安装目录下对应的文件。
(其他的config\pc486.972、man文件夹都不要,太旧了。
makefile文件可以复制也可以不复制,没有大的影响)
二、虚拟机配置:
A:
\>formatC:
格式化创建的主分区
到此虚拟机已经建好,但是vxworks系统文件还未做好,在第三章中会有介绍。
三、安装vxworks系统:
总的过程分为以下几步:
1、编译网卡驱动
VMWare为运行于其上的操作系统提供虚拟网卡支持,该网卡类型即为AMD的PC-NET。
实际上,在Tornado开发包中已经包含了该类型网卡的驱动程序,但经过测试,对于VMWare无法正常工作,所以您需要从AMD的网站下载最新的驱动程序。
下载得到的是一个可执行的安装程序,运行该程序将得到一个压缩包和一个帮助文件,按照该帮助的要求,将压缩包直接释放到Tornado目录下。
如果提示是否允许覆盖文件,则选择允许。
此后按如下步骤完成驱动程序的编译和替换:
单击windows系统的开始菜单,在“运行”里输入“cmd”打开控制台程序。
1)运行批处理程序C:
\tornado2.2\host\x86-win32\bin\torVars.bat
2)重新定位到C:
\tornado2.2\target\src\drv\end目录
输入:
cd\tornado2.2\target\src\drv\end
运行:
makeCPU=PENTIUMtool=gnuln97xend.o(这一步会出现重复提示,不要管它,它自己会结束。
耐心点,否则驱动编译不完全)这一步会在C:
\tornado2.2\target\src\drv\end目录下生成ln97xend.o文件(可以看看)
3)定位到目录:
cd\tornado2.2\target\lib\pentium\PENTIUM\common
备份此目录下的文件libdrv.a(视图操作),将上一步生成的文件ln97xend.o复制到此目录下;
保证在该目录下:
cdC:
\tornado2.2\target\lib\pentium\PENTIUM\common目录
运行命令arpentium-dlibdrv.aln97xEnd.o,删除libdrv.a中原有的ln97xEnd模块,然后再运行命令:
arpentium-raiOlicomEnd.olibdrv.aln97xEnd.o。
将我们刚刚创建的新模块添加进去
到此有关网卡驱动的设置就完成了。
注意不要关闭这个窗口,后面还要使用。
2、修改bsp文件
在这一节中,我们要修改编译VxWorks的配置头文件Config.h中定义的一些参数,使编译出来的系统引导程序和VxWorks的映象符合我们的要求;同时还要修改sysLn97xEnd.c这个文件,以使系统的网络功能正常运行。
A、打开文件:
C:
\tornado2.2\target\config\pcPentium\config.h文件。
1)找到/*defaultbootline*/那行,修改预处理条件CPU==PENTIUM分支下的定义如下:
lnPci(0,0)hw:
d:
\\vxWorksh=122.204.142.92e=122.204.142.91u=targetpw=vxworkstn=target"(我是这样设置的,注意Inpci的一个字母是’L’的小写’l’。
)
lnPci(0,0)指定了使用第0个网卡和第0个处理器,lnPci这个标识会因为使用的驱动程序不同而有所不同,但这里用lnPci就可以了;
hw是我的计算机名。
(这个随便怎么写都行)
d:
\\vxWorks是存放操作系统镜像的路径,后面讲用FTP传送的时候还将提到。
h=122.204.142.92h后面跟的ip来自于主机网卡。
e=122.204.142.91这个ip是给目标板用的,和上面的ip要在同一个网段内,且它不能和主机所在的局域网的其他主机的ip冲突。
u=target即:
FTP服务器的用户名,这个FTP就是用来下载VxWorks映象的,后面ftp传送的时候也要用到。
可随便设置
pw=vxworks和用户名对应的密码,后面ftp传送的时候也要用到。
可随便设置
tn=target是目标板名字。
可随便设置
您可以参考Tornado自带的手册以获取更多信息;
2)下面我们要指定使用什么样的网卡驱动程序。
首先查找“Networkdriveroptions”这段文字,之后您可以看到在该注释后面定义了一系列的有关网卡驱动的宏定义。
注意保证INCLUDE_END和INCLUDE_LN_97X_END这两个宏处于定义状态(define),其他的宏都处于未定义状态(undef);
3)缺省情况下,VxWorks系统是不接受外部输入设备(如键盘)的输入,也不向外部输出设备(如显示器)输出数据。
为了便于调试,我们必须改变它的这种缺省状态。
我们查找定位宏INCLUDE_PC_CONSOLE,然后保证其处于定义状态(define)即可;
到此为止,对config.h文件的修改就完成了,保存修改,
B、打开同一目录下:
C:
\tornado2.2\target\config\pcPentium\sysLn97xEnd.c
这一步修改的目的是要使网卡正常工作。
我们先定位到“memory-mappedIObase”这段文字,然后将其前面的参数由pciRsrc[endUnit].bar[1]修改为NONE,这样就可以了。
最后别忘了保存。
到此为止,全部的修改工作都完成了,下一步就可以开始编译连接了。
3、编译bootrom并放到启动盘里去。
打开Tornado开发工具,在Build菜单下选择build->BuildBootROM。
在BSP列表中选择pcPentium,而在Imagetobuild列表中分别选择bootrom和gnu。
完成选择后,点击OK按钮就开始引导程序的编译了。
编译
产生的文件bootrom将保存在E:
\tornado2.2\target\config\pcPentium目录下(可以看看有没有再继续下去)。
如果有进行下一步:
输入cdC:
\tornado2.2\target\config\pcPentium
输入mkboota:
bootrom。
这样软驱(a:
)里就有启动虚拟机的代码了。
(这里要保证运行此命令之前仿真虚拟软驱是开着的)
注意:
执行makeboot命令前,先到host\x86-win32\bin下执行torvars命令,然后回到target\config\pcpentium\目录下执行mkboota:
bootrom
实际操作中,我并没有用mkboota:
bootrom,而是按照“高阶教程”里的方法做的:
产生bootrom后,新建一个make.bat文件,编辑内容如下
这里说的AMD就是pcPentium。
按回车到出现[VxWorksBoot],输入@后启动,提示找不到D;\VxWorks。
当然了,我们还没有编译VxWorks拷贝到D盘。
继续第四章节
4、创建vxworks工程
这里说的AMD就是pcPentium。
选择需要的VxWorks组件。
在这个例子中我们选择了两个重要的组件:
Telnetserver和Targetshell。
前者使我们可以通过Telnet协议登录到VxWorks操作系统中;后者则可以让我们通过命令行控制VxWorks系统。
完成选择后就编译操作系统。
把编译好的操作系统镜像(默认情况下C:
\Tornado2.2\target\proj\Project0\default\)放在C:
\盘下(这由defaultbootline参数决定的)。
Telnetserver在工程下Networkcomponents——Networkingprotocols——Networkapplications——telnetserver,选择它就是右键选择“Include’telnetserver’”,在弹出的对话框中选择“ok”,然后telnetserver字体就变粗了。
Targetshell在工程下Developmenttoolcomponents——Targetshellcomponents——targetshell,
如图所示,正常字体是未选择的组件,加粗字体是已选择的组件,斜体是未安装的组件。
5、配置FTP(用其把vxWorks镜像传到虚拟机里)
首先在工程中选择ftpserver组件,
然后打开tornado2.2自带的ftpserver选择“Security”菜单下的“Users/Rights”子菜单,弹出对话框,查看username下拉菜单中其是否自带了用户名target用户名,若有则删掉(点击target,再点delete)。
(这是defaultbootline的参数决定的)
单击“新建”,输入用户名target,密码vxworks,路径写D:
\(这都是defaultbootline决定的)。
然后点done。
这样做是在告诉主机,虚拟机将用target用户名和主机通信。
为了便于调试,我们还要打开FTPServer的日志功能。
选择“Logging”菜单下的“LoggingOptions”子菜单,弹出如下对话框,其中除了“WinsockCalls”外,让其他选项全都处于开启状态。
如图所示:
保持FTPServer窗口处于打开状态(这样FTP服务器就处于运行状态)。
6、创建vxWorks系统
配置好ftp服务器后,右击工程名,选择“Build‘vxWorks’”,等待镜像文件的产生。
将生成的名为“vxworks”的文件(工程目录的default文件夹下)复制到D盘根目录下。
这个路径是由上面我们所设置的DEFAULT_BOOT_LINE宏中的路径参数决定的,必须保持二者一致。
启动虚拟机,虚拟机启动后选择StartwithVxWorks55就可以真正把vxworks加载了。
如图所示
到此我们已经生成了VxWorks的系统引导程序bootrom和运行时的代码映象vxworks文件。
这里还要提醒读者,在您每次修改完系统的配置信息(如:
config.h)后,都要重新创建一个工程来编译VxWorks映象,以免出现代码不一致的问题。
7、配置联机调试环境
装好系统后,您肯定还希望将自己编写的应用程序下载到目标机进行调试,下面我们就完成这一部分的配置工作。
打开您的Tornado开发环境,选择“Tools->TargetServer->Configure”菜单,弹出如下对话框:
如左图,在“Description”中任意填写一个名字,这里是“net00”;在“AvailableBack”中选择“wdbrpc”,并在下面的IP地址框中填写目标机的IP地址,这里是“192.168.80.254”(由DEFAULT_BOOT_LINE参数决定);
然后将“TargetServerProperties”下拉框更改至“CoreFileandSymbols”,如右图,并在“FilePath”一项中选择您的映象的完整路径,这里是“D:
\vxWorks”(由DEFAULT_BOOT_LINE参数决定)。
完成以上两项配置,点击“Launch”按钮,就可以启动TargetServer了。
再回到Tornado开发环境,在工具条上的TargetServer下拉框列表中选择“192.168.80.254@your_host_name”。
这时您会发现工具条中一些原先处于“禁用”状态的工具按钮,现在都已经处于“激活”状态了。
现在您就可以开始联机调试您的VxWorks应用程序了。
比如新建一个“downloadable”工程,选择pentium和gnu,然后File——new——C++SourceFile,添加C文件到工程,名字为test.c,内容
#include
Voidtest()
{
Printf(“thisisatest!
”);
}
然后右击工程名,build‘vxworks’,成功之后,点击
,然后选择“downloadable”工程目录——default文件夹——test.o,点击确定,若是没有报错,就说明下载成功了。
再点击
,运行shell,输入test,回车,应该就会打印出thisisatest!
,如下图。
也可以通过点击
,进行调试,然后点击
,出现以下窗口,在task一栏输入test,点击ok,切换到VMware的窗口中也能看到结果。
如果以上内容全部完成,那么Tornado和VMware的安装便成功了,你可以放心大胆的进行嵌入式系统的开发。
四、需要注意的地方:
1、假如从2.3节开始直到安装完vxworks系统期间,关掉了电脑,那开机的时候需要再重新从2.3节执行;假如安装完vxworks后,关掉了机器,每次开机时若要在虚拟机上跑vxworks,需将bootrom.sys、config.sys、重新拷到A盘(bootrom.sys是必须拷的)。
2、文中提到安装dos,我们只需要装在虚拟机上,不需要把dos6.22装上。
因为我们通过网卡下载启动vxworks镜像。
3、执行makeboot命令前,先到host\x86-win32\bin下执行torvars命令,然后回到target\config\pcpentium\目录下执行mkboota:
bootrom
4、ftp没有日志出现的情况有一下几种原因:
1)网卡驱动没有编辑好也就是bootrom.sys文件有误(最难发现)
2)路径设置有问题
3)用户名密码不正确
五、主要参考:
本文并非全部原创,主要参考内容有以下三个,当然还参考了别的很多内容,在此就不一一列举了。
1、VmWare+VxWorks高阶教程
它是从硬盘启动,故其第三章的相关修改也和我们不一样。
第6节介绍WINDML。
2、虚拟机安装VxWorks
3、安装tornado和vmware下的vxworks
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- xp 虚拟机 移植 vxworks