在VxWorks下进行开发调试,在目标机上加载VxWorks映像很重要,在目标机上加载VxWorks映像,最重要的是三个步骤:
第一步,修改config.h文件,在config.h文件里包括硬盘驱动。
#define INCLUDE_ATA /* 包括IDE/EIDE(ATA) 硬盘驱动 */
修改#define DEFAULT_BOOT_LINE(引导行)宏定义。
#define DEFAULT_BOOT_LINE \
"ata=0,0(0,0)host:/ata0a/vxWorks h=192.9.10.91 e=192.9.10.92 u=target"
这样配置引导程序将从目标机主ATA接口硬盘的C盘加载vxWorks。
第二步,在Tornado中生成引导程序bootrom。这个文件的作用是引导vxworks映像。
第三步,生成VxWorks映像。
有了bootrom和VxWorks映像,就可以进行硬盘启动试验了。
VxWorks下的硬盘启动方法一:
Bootrom在开发机Tornado中生成。注意,要选择可压缩的引导程序bootrom,不要选择不可压缩的引导程序bootrom_uncmp,这是因为目标机的引导空间有限,如果选择非压缩的引导程序bootrom_uncmp,容易造成失败。我曾经生成的bootrom_uncmp用于引导,没有成功。Bootrom生成后将其拷贝到tornado\host\X86-win32\bin目录下。在3寸软驱中中插入一张格式化好的软盘。启动MS-DOS的命令行方式在此目录下执行:
Mkboot a: bootrom↙
执行完上述命令后开始制作启动盘。启动盘制作成功后,软盘上将出现bootrom.sys文件。
另外找一张格式化好的软盘将本目录下的vxsys.com命令拷贝出来。再将生成的VxWorks映像文件拷贝出来。
对目标机所做的工作如下:
第一步,把目标机的BIOS硬盘参数修改为NORMAL模式;
第二步,用DOS软盘启动目标机,运行FDISK命令,对硬盘进行分区,把硬盘分为FAT16格式。
A:fdisk↙
第三步,格式化硬盘。
A:format c:↙
第四步,运行vxsys命令,这个命令的作用是将引导分区加到硬盘的主引导分区,也就是说可以进行VXLD引导了。
A:vxsys c:↙
如果是MS_DOS 6.22,直接运行A:vxsys c:↙命令。
如果是MS_DOS 7.0,在此之前还要运行
A:lock c:↙
A:vxsys c:↙
第五步,将做好的bootrom.sys和生成的VxWorks映像文件拷贝到目标机。
A:copy bootrom.sys c:↙
A:copy vxworks c:↙
这样执行后再重新启动目标机就可以了。
VxWorks下的硬盘启动方法二:
第二种方法比较简单,详细如下:
第一步,将目标机上预装MS_DOS 6.22或MS_DOS 7.0(Win98的DOS版本),或者将启动盘的DOS系统传递到硬盘;
第二步,将tornado\host\X86-win32\bin目录下的vxload.com文件拷贝到目标机。
第三步,将生成的bootrom.sys文件拷贝到目标机上。
第四步,将生成的vxworks映像拷贝到目标机上。
启动目标机后,运行vxload命令进行vxworks加载就可以了。
C:vxload bootrom.sys↙
这种方法也可以通过批处理来启动VxWorks,这需要autoexec.bat、configy.sys及HIMEM.SYS文件。
为了做成在硬盘上进行硬盘启动,笔者进行了很多试验,但是前期启动一直失败,最后总结原因,可能是因为我的机器上装了VxWorks的DOS文件系统的补丁的原因,这个补丁的作用是为了支持FAT32格式的分区。后来我又在我的机器上重新装了Tornado,这一次我没有打DOS文件系统的补丁,再进行试验,就成功了,到目前为止,在硬盘上进行硬盘启动,硬盘支持FAT16/FAT32分区。