VxWorks6.6 pcPentium BSP 使用說明(二):創建啟動盤
本篇介紹從Solaris、Linux、Windows或VxWorks創建VxWorks啟動盤的方法。
從Solaris或Linux創建啟動盤
使用Solaris或Linux自帶的工具/usr/bin/fdformat。它需要一個引導加載程序vxld.bin,位置為安裝目錄下的$WIND_BASE/host/$WIND_HOST_TYPE/bin/vxld.bin。
插入一張1.44MB的軟盤,鍵入fdformat命令格式化軟盤並安裝引導。
fdformat -U -d -B $WIND_BASE/host/$WIND_HOST_TYPE/bin/vxld.bin
Formatting 1.44 MB in /vol/dev/rdiskette0/no_name#0
Press return to start formatting floppy.
.................................................. ...........
fdformat: using "vxld.bin" for MS-DOS boot loader退出並重新插入該軟盤。在許多係統中必須鍵入彈出命令。
> eject
/vol/dev/rdiskette0/no_name can now be manually ejected
> volcheck複製BootROM的鏡像到軟盤。使用cp命令複製bin鏡像或使用objcopypentium命令對於其他鏡像文件。
> cp bootrom.bin /floppy/floppy0/bootrom.sys
...
> objcopypentium -O binary bootrom /floppy/floppy0/bootrom.sys在Solaris下使用一些版本的fdformat進行低級格式化可能會導致啟動時間變長。由於現今的軟盤隻是未格式化,Solaris用戶可添加- x參數格式化軟盤以避免過長的啟動時間:
fdformat -x -U -d -B $WIND_BASE/host/$WIND_HOST_TYPE/bin/vxld.bin
該參數隻能在格式化軟盤時使用。
從Windows創建啟動軟盤
C:\WR\VxWorks\target\config\pcPentium\> format a: /v /q
Insert new disk for drive A:
and press ENTER when ready...
The type of the file system is FAT.
Verifying 1.44M
Format complete.
Volume label (11 characters, ENTER for none)?
1457664 bytes total disk space.
1457664 bytes available on disk.
512 bytes in each allocation unit.
2847 allocation units available on disk.
Volume Serial Number is 307A-4ACB
Format another (Y/N)? nC:\WR\VxWorks\target\config\pcPentium> mkboot a: bootrom.bin
VxSys 1.6 (c) Wind River 1993-2002
Boot sector installed OK.
1 file(s) copied.
System transferred. Checking a:BOOTROM.SYS is contiguous
chkdsk a:bootrom.sys
The type of the file system is FAT.
Volume Serial Number is D4CF-F52B
Windows is verifying files and folders...
File and folder verification is complete.
Windows has checked the file system and found no problem.
1,457,664 bytes total disk space.
271,360 bytes in 1 files.
1,186,304 bytes available on disk.
512 bytes in each allocation unit.
2,847 total allocation units on disk.
2,317 allocation units available on disk.
All specified file(s) are contiguous.mkboot.bat將啟動引導寫入軟盤的引導扇區。然後mkboot拷貝啟動文件到軟盤上並檢測確保啟動文件是連續的。用戶必須注意反饋的報告信息確保啟動文件是連續的。引導裝載程序將不能正確地處理一個非連續的啟動文件。
另一種方法是手動調用mkboot.bat:
格式化
使用.\host\x86-win32\bin\vxsys創建一個引導扇區
拷貝引導鏡像並修改擴展名為.bin
對於所有其他啟動鏡像使用objcopypentium命令
例如:
C:\WR\VxWorks\target\config\pcPentium\> format a: /v /q
Insert new disk for drive A:
The type of the file system is FAT.
The type of the file system is FAT.
QuickFormatting 1.44M
Format complete.
Volume label (11 characters, ENTER for none)?
1457664字節總磁盤空間。
1457664 bytes available on disk.
512 bytes in each allocation unit.
2847 allocation units available on disk.
Volume Serial Number is DC31-1143
QuickFormat another (Y/N)? n
C:\WR\VxWorks\host\x86-win32\bin> vxsys a:
VxSys 1.6 (c) Wind River 1993-2002
Boot sector installed OK.現在複製啟動鏡像到軟盤。對.bin的鏡像使用copy命令
C:\WR\VxWorks\target\config\pcPentium> copy bootrom.bin a:bootrom.sys
對於其他所有的鏡像使用objcopypentium命令
C:\WR\VxWorks\host\x86-win32\bin\objcopypentium -O binary --gap-fill=0
bootrom a:bootrom.sys現在驗證該文件是連續的。非連續的鏡像將無法啟動。
C:\WR\VxWorks\target\config\pcPentium> chkdsk a:bootrom.sys
The type of the file system is FAT.
Volume Serial Number is DC31-1143
CHKDSK is verifying files and directories...
File and directory verification completed.
1457664字節總磁盤空間。
964608 bytes available on disk.
964608 bytes available on disk.
2847 total allocation units on disk.
2847 total allocation units on disk.
1884 allocation units available on disk.
All specified file(s) are contiguous.你也可以使用硬盤來引導VxWorks。你必須從計算機的BIOS上顯示的主磁盤上的主引導分區引導。
建議您使用FDISK或類似的實用程序來創建主引導分區。原因是FDISK的使用PC BIOS調用來創建磁盤主引導記錄。BIOS的任務是在啟動過程中裝載啟動引導。因此,建議使用像FDISK一樣通過BIOS改寫分區的實用程序。
磁盤分區和文件係統可以支持FAT12、FAT16或VxWorks專有的VXLONGNAMES文件係統。引導加載程序不支持FAT32格式。如果您需要FAT32格式,分出一個小的FAT16分區作為主引導分區,第二個較大的分區作為FAT32格式包含剩餘的磁盤空間。
在上麵的例子中用盤符“C:”取代盤符“A:”創建引導磁盤時,vxsys.com會問提示如下問題:
That's a hard disk!Are you sure (y/n)?
您應該輸入“Y”,以確認操作。這是為了防止誤覆蓋其他的從本磁盤啟動的操作係統。
從vxWorks創建可啟動磁盤
VxWorks下的三個引導工具用法如下:
STATUS mkbootFd
(
int drive, /* destination drive number: (0 - 3) */
int fdType, /* type of floppy disk: (0 - 1) */
char *in /* source file name */
)
STATUS mkbootAta ( int ctrl, /* dest. controller number: (0 - 1) */
int drive, /* dest. drive number: (0 - 1) */
char *in /* source file name */
)
STATUS mkbootTffs (
int drive, /* drive number: (0 - TFFS_MAX_DRIVES - 1) */
int removable, /* removable or not: (TRUE - FALSE) */
char *in /* source file name */
)所有例程成功後均會返回OK,如果在複製鏡像文件到磁盤時失敗則會返回ERROR。這些例程的源代碼在BSP文件mkboot.c中。
示例
示例1:使用mkbootFd創建一個啟動軟盤:
軟盤位於驅動器0(或a:),鏡像文件的名稱是bootrom.sys:
-> mkbootFd 0, 0, "bootrom.sys"
示例2:使用mkbootFd創建一個可引導的磁盤:
硬盤位於ATA控製器0通道,其驅動器號為0(或C:)。鏡像文件的名稱是bootrom.sys:
-> mkbootAta 0, 0, "bootrom.sys"
示例3:使用mkbootTffs創建一個可啟動的TrueFFS磁盤:
磁盤驅動器TrueFFS位於0(或C:),這是一個非移動驅動器。鏡像文件的名稱是bootrom.sys:
-> mkbootTffs 0, 0, "bootrom.sys"
這些板不具有非易失性RAM,因此,係統斷電後引導參數將不被保留。然而,靜態引導參數可以設置在config.h中的啟動參數設置行DEFAULT_BOOT_LINE
BootROM程序
vxsys.com 驅動器號:
此命令將在磁盤引導扇區安裝一個VxWorks引導載入程序。該驅動器可以是由BIOS的引導的軟盤(驅動器A:)或硬盤。VxWorks的引導載入程序在根目錄搜索bootrom.sys並直接加載到內存0x8000的線性地址中。然後跳轉到0x8000執行romInit()。
附注:
經過引導加載器在磁盤引導扇區創建引導,您不必再為新的ROM鏡像重複vxsys創建引導的操作。隻需複製一個新的啟動映像到已經安裝引導的磁盤即可。
vxld.bin
vxld.bin既不是一個命令,也不是一個程序,而是一個由vxsys.com安裝到磁盤或軟盤上引導扇區的副本。他被單獨便提及以便於替換Solaris、Linux或其他第三方引導創建的引導加載程序。
mkboot 驅動器號:源文件
此命令是一個MS - DOS批處理文件,它調用vxsys.com安裝VxWorks的引導加載程序到啟動扇區,然後使用複製源文件到“盤符:bootrom.sys”。它也調用MS-DOS的chkdsk校驗bootrom.sys是否連續。
vxload.com [image_file]
此命令用於從MS-DOS啟動並加載VxWorks鏡像,尤其是bootrom鏡像。它可以在PC啟動時更方便快捷地加載鏡像。 vxload需要一個參數,即鏡像文件的名稱。 vxload.com不與任何Microsoft Windows版本兼容,它僅支持在MS-DOS下運行。
VxWorks的低內存鏡像運行在內存0x8000到0xa0000的空間。這限製了提供給鏡像的可用的內存池的大小。config.h中的INCLUDE_BOOT_ADDMEM配置使能代碼運行時是否可使用內存池中指定的高內存(內存物理地址大於0x100000)單鏡像為低內存版本時。此選項不能用在係統的內存少於4MB的情況下。
加載低內存鏡像的內存大小ADDED_BOOTMEM_SIZE的默認值為2MB。這個值可能會增加,但要確保該池不與下載下來的vxWorks鏡像重疊,當INCLUDE_BOOT_ADDMEM配置為使用低內存啟動鏡像時。如果有重疊,加載的vxWorks鏡像運行會破壞已加載的內存池。
確定ADDED_BOOTMEM_SIZE值的計算方法如下:
(RAM_LOW_ADRS + vxWorks image size) < (memTopPhys + ADDED_BOOTMEM_SIZE)
memTopPhys在BSP文件sysLib.c中被計算。
最後更新:2017-04-03 06:03:10