1. 程式人生 > >PC104上配置VxWorks硬碟啟動詳解

PC104上配置VxWorks硬碟啟動詳解

        DEVPC104-SYS是一款在 PC104 尺寸上開發出來的嵌入式工業主機板。以其小巧的體積﹑超強的功能和穩定性,可廣泛應用於自動查詢系統﹑POS 機﹑網路終端﹑儀器儀表﹑資訊家電、工業控制等各種嵌入式領域。

 

       VxWorks 是美國 Wind River System 公司推出的一個實時作業系統。通常所指的VxWorks作業系統對應軟體包括三個部分:載入程式bootrom、主作業系統vxWorks、以及使用者開發程式。Tornado提供一個整合的編譯bootrom、vxWorks以及使用者程式的工程環境。下面將介紹PC104上安裝VxWorks詳細過程。

一、PC端安裝Tornado及初始配置

       略(相關文獻很多就不詳述了)。

二、製作bootrom

       bootrom是VxWorks作業系統整合的啟動程式碼。首先需要針對不同型別CPU配置BSP,這裡需要修改$(WIND_BASE)\target\config\pcPentium\Config.h檔案。開啟檔案,修改如下資訊:

#define DEFAULT_BOOT_LINE \
#elif	(CPU == PENTIUM)
#define DEFAULT_BOOT_LINE \
	"ata=0,0(0,0)host:/ata0/vxWorks h=192.168.0.32 e=192.168.0.36 u=target pw=target o=fei"
	/* "lnPci(0,0)host:d:\\vxWorks h=192.168.0.32 e=192.168.0.36 u=target pw=vxworks o=fei" */

其中,本文的PC104使用CPU型號為PENTIUM,根據具體情況更改對應CPU下的配置項。引號中的內容含義是,配置了一個從目標機硬碟載入VxWorks映象檔案,註釋掉的內容為從網路中主機載入VxWorks映象檔案。再修改如下資訊:

(1)

#define SYS_WARM_TYPE		SYS_WARM_FD /* warm start device */
修改為:
#define SYS_WARM_TYPE		SYS_WARM_BIOS /* warm start device */
不更改的話,當系統引導時就會提示“0x28fe10(tBoot):sysNvRamGet:open failed”。

(2)

#undef	INCLUDE_ATA		/* include IDE/EIDE(ATA) hard disk driver */
修改為:
#define	INCLUDE_ATA		/* include IDE/EIDE(ATA) hard disk driver */
(3)
#undef	INCLUDE_FEI_END         /* (END) Intel 8255[7/8/9] PCI interface */
修改為:
#define	INCLUDE_FEI_END         /* (END) Intel 8255[7/8/9] PCI interface */
(4)
#define  INCLUDE_LN_97X_END      /* (END) AMD 79C97x PCI interface */

修改為:

#undef  INCLUDE_LN_97X_END      /* (END) AMD 79C97x PCI interface */
修改完Config.h檔案別忘記儲存!然後繼續往下做。

        初始化環境變數。CMD下進入tornado2.2\host\x86-win32\bin目錄,執行torvars命令。

        編譯bootrom。本文選用命令列方式編譯,CMD下進入tornado2.2\target\cofig\pcPentium,輸入make 命令編譯若在執行make命令時遇到"make: Nothing to be done for 'default'."提示,常是由於Config.h檔案在之前修改過程中程式碼沒有對齊引起的,注意程式碼與行頭間距一個“Tab”鍵)。如下圖所示:


編譯成功後,再輸入"make bootrom"命令編譯bootrom。

       製作bootrom啟動軟盤。先插入軟盤,對軟盤進行格式化,命令:format a:/q,完成格式化後,輸入命令:mkboot a:  bootrom(注意:在a與bootrom之間有一個空格),製作成功後如下圖所示。之後,就可以把做好的啟動盤插入PC104中,重啟,若能正確引導,則製作成功,否則重新檢查Config.h檔案,再製作。


三、製作VxWorks映象

       略(網上相關教程很多)。

四、製作bootrom啟動硬碟

        使用bootrom軟盤引導弊端很多,比如軟盤現在很少見了、軟盤讀寫數度很慢、軟盤很容易損壞等。因此,可以將bootrom直接製作到PC104的本機硬碟上。具體方法如下:

         1、執行“二、製作bootrom”所有步驟,若手頭無法找到軟盤,可以建立虛擬軟碟機(相關軟體很多)。

         2、用U盤製作一個DOS啟動盤,建議選用MS-DOS_7.1版本(不要使用windows格式化命令中的“建立一個MS-DOS啟動盤”,這種方式建立的DOS版本太低)。

         3、從“C:\Tornado2.2\host\x86-win32\bin”目錄下拷貝檔案"vxsys.com" 到DOS啟動盤裡;從網路下載DOS下使用的格式化工具“FORMAT.COM”拷貝到DOS啟動盤裡;將之前軟盤中生成的“bootrom.sys”拷貝到DOS啟動盤裡;將做好的VxWorks映象拷貝到DOS啟動盤裡。

       【注】需要的檔案可點選此處下載(包括DOS啟動U盤製作工具、FORMAR.COM等相關軟體)

         4、PC104主機BIOS的第一啟動項設定成U盤。具體方法如下:開機按住Delete鍵,進入BIOS,Boot選項中修改Boot Device Priority和Hard Disk Drivers選項(注意,需要先插入U盤後再進入BIOS設定啟動項),具體根據BIOS版本不同而異。

         5、PC104重啟後,進入U盤DOS系統。若是新機器,硬碟沒有分割槽的話,首先需要對硬碟分割槽,這裡不詳述。本文假定對已分割槽的硬碟重新做bootrom。DOS下執行如下命令:

       (1)格式化需要做引導盤的分割槽(本文假定對D盤格式化)。

C:\>format d:

         (2)執行vxsys.com,此命令作用是將引導分割槽加到硬碟主引導分割槽上(MS-DOS7.0以上版本需先執行lock命令)。

C:\>lock d:
C:\>vxsys d:
 (3)複製bootrom、VxWorks到引導分割槽下。
C:\>copy bootrom d:
C:\>copy vxWorks d:
          6、此時不要拔出U盤,重啟PC104,按住Delete進入BIOS,改回優先啟動項為硬碟(不改回的話,偶爾引導bootrom時會出現問題)。

         7、拔出U盤,重啟PC104,bootrom可正常啟動,之後本地載入VxWorks映象檔案,順利進入VxWorks系統後如下圖所示。