引导盘的意思就是,在没有安装系统机器上引导运行一段程序,在这里要运行程序是BootRom。这一部分将实现通过VMware虚拟机模拟VxWorks硬件环境,通过虚拟软驱模拟软盘来实现引导盘的制作。
BootRom是VxWorks操作系统集成的启动代码,通过它可以和Tornado集成的一些工具进行VxWorks内核的下载和调试工作。在Tornado集成开发环境的Build菜单中可以直接编译BootRom。
BootRom程序主要有以下几个功能:
这里使用的VmWare版本为9.0.1,RamDiskNT版本为1.5。VMware可以虚拟VxWorks硬件开发环境,RamDiskNT可以虚拟软驱来实现软盘启动的实验。其安装过程如同Windows其它应用程序的,这里就不总结了。
1.配置VxWorks硬件环境
打开VMware软件,单击File | New Virtual Machine命令创建一个名为Other的新虚拟机。关键步骤的截图如下图所示,其它均使用默认设置。
我们选择配置方式为定制方式,如图2.1所示。
图2.1 选择配置方式
现在只需要配置环境不需要安装系统,所以选择暂不安装系统,如图2.2所示。
图2.2 系统安装
VMware中没有提供VxWorks系统的选择,所以系统选择Other版本也选择Other,如图2.3所示。
图2.3 选择系统
2.虚拟一个软驱
打开RamDiskNT软件会提示是否注册,这里选择Register Later即可。打开RamDiskNT后,选择Disk Type为1.44MB Floppy;Driver Letter为A;勾选Start driver at boot然后单击Start按钮即可。其具体步骤和设置,如图2.4所示。
图2.4 创建虚拟软驱
按照图2.4所示的配置设置好RamDiskNT后,单击OK按钮即完成了虚拟软驱的创建。重新启动后,创建的虚拟软驱才会生效。要想实现虚拟软驱引导BootRom,首先要通过Tornado集成开发环境编译BootRom,然后通过Tornado提供的命令将BootRom导入到虚拟软驱区。
1.制作引导盘
(1)编译BootRom
打开Tornado 2.2集成开发环境,单击菜单项Build | Buid Boot Rom…命令。在弹出的Buid Boot Rom对话框中使用默认设置并单击OK按钮,即可完成BootRom的编译。如图2.5所示。
图2.5 编译BootRom
生成的BootRom文件可以在C:\Tornado2.2\target\config\pcPentium目录中找到。
(2)搭建命令环境
制作引导盘需要通过mkboot命令完成,但是在使用该命令之前需要搭建命令环境。首先打开命令提示符中输入,然后输入C:\Tornado2.2\host\x86-win32\bin\torvars.bat命令,即运行C:\Tornado2.2\host\x86-win32\bin目录下的torvars.bat文件。运行后结果如图2.6所示。
图2.6 搭建命令环境结果
运行torvars.bat后,系统将会为用户设置必要的环境变量和路径,搭建命令环境。从而让用户可以使用一些Tornado所提供的命令,这些操作都将在cmd下完成。要注意,直接双击运行torvars.bat批处理文件是无效的,而且每次需要使用命令都需要在cmd中运行该文件。
(3)制作引导盘
在cmd中输入cd C:\Tornado2.2\target\config\pcPentium即可进入到pcPentium目录,因为刚刚编译BootRom时候选的BSP驱动为pcPentium。然后,使用Tornado提供的mkboot命令将BootRom复制到软盘,制作成引导盘。该命令为:mkboot a: bootrom。运行后如图2.7所示。图2.7 制作引导盘
其中a表示软盘的盘符。该命令首先将一段简短的引导程序写入软盘的引导扇区,然后将bootrom经过处理复制到软盘中,并将其重命名为bootrom.sys。
2.引导虚拟机
在引导虚拟机的时候需要将虚拟机设置的软驱指定为A:盘符,但是往往虚拟软驱不能被虚拟机检测到,如图2.8所示。
图2.8 虚拟机设置中的软驱
这时,还需要使用RamDiskNT软件来得到软驱的镜像文件。打开RamDiskNT,单击对话框右下角的Save Disk Image按钮,这时在C盘就会多出一个ramdskNT.img镜像文件。用虚拟机加载该镜像文件引导启动能得到软驱启动相同的效果。虚拟机中的软驱设置,如图2.9所示。
图2.9 设置加载软驱镜像文件
在虚拟机设置中选择软驱镜像文件并单击OK按钮后,在VMware软件中单击绿色三角箭头按钮启动虚拟机,如图2.10所示。
图2.10 引导虚拟机结果
其中,V1.6表示引导程序的版本,连续的’+’号表示引导的进程。根据bootrom的不同,’+’号长度也不同。
图2.10 引导虚拟机结果
其中,V1.6表示引导程序的版本,连续的’+’号表示引导的进程。根据bootrom的不同,’+’号长度也不同。
3.支持控制台
VxWorks 5.5默认情况下不提供控制台的支持。如果需要支持控制台,得修改相应BSP目录下的config.h文件。这里需要修改的文件路径为:C:\Tornado2.2\target\config\pcPentium\config.h。打开config.h文件,查找INCLUDE_PC_CONSOLE,定位到如下宏定义:
#undef INCLUDE_PC_CONSOLE /* PC keyboard and VGA console */修改#undef INCLUDE_PC_CONSOLE为#define INCLUDE_PC_CONSOLE。修改后,该宏定义下所示:
#define INCLUDE_PC_CONSOLE /* PC keyboard and VGA console */保存修改后的config.h文件,重新执行上面1、2段的制作引导盘和引导虚拟机。最后结果如图2.11所示。
图2.11 支持控制台的BootRom
软盘引导目标机是最简单的办法,也是VxWorks的默认引导办法。当然还有其他类型的引导设备,比如:U盘、硬盘、ROM等。