bootrom的構成
bootrom的構成
在開發階段,VxWorks 操作係統大多采用bootrom+ VxWorks 方式啟動,即下載型方式進行。一方麵,由於VxWorks本身調試的需要,另一方麵,bootrom相比VxWorks內核較小,可以較快地燒錄到平台ROM 中。在下載型方式中,bootrom的主要任務就是從主機端(相對運行VxWorks 的目標板而言)通過串口或者網口將VxWorks內核映像載入目標板RAM中,而後跳轉到VxWorks 內核映像入口處執行。bootrom 完成的所有工作基本上都是為了下載VxWorks內核映像做準備。
bootrom在構成上基本類似於VxWorks內核本身,即二者使用同一套函數,但是也有一個較大的區別:bootrom使用bootConfig.c文件,而VxWorks內核本身則使用usrConfig.c文件。在下載型啟動方式下使用的VxWorks 內核映像由如下文件構成:sysALib.s、sysLib.c、usrConfig.c 和設備驅動程序文件。bootrom 映像則由如下文件構成:romInit.s、bootInit.c、sysALib.s、sysLib.c、bootConfig.c和設備驅動程序。
bootrom 映像中雖然包含sysALib.s 文件代碼,但是其並不使用其中定義的任何函數。
sysLib.c 以及設備驅動程序都是相同的,在下載啟動方式下,VxWorks 內核映像不包含romInit.s和bootInit.c文件。但是一旦處於產品階段,當采用ROM 啟動方式時,VxWorks 內核映像構成將基本類似於bootrom映像構成,即為:romInit.s、bootInit.c、sysALib.s、sysLib.c、usrConfig.c、設備驅動程序文件。
ROM啟動方式下,sysALib.s文件沒有使用,但是仍然包含在內核映像中,可以修改係統文件中的相關宏定義,去掉該文件,但如果需要下載型VxWorks 內核映像,還是要加上sysALib.s文件,故建議一直包含該文件。其中romInit.s、bootInit.c、sysLib.c、設備驅動程序與bootrom 中使用的都是同一套文件,然而無論VxWorks映像是基於下載方式的,還是ROM方式的,其總是使用usrConfig.c文件,而bootrom則總是使用bootConfig.c 文件。這兩個文件雖然定義有相同的函數(usrInit 和usrRoot),但基本實現卻大不相同,bootConfig.c 也進行一些初始化,如當使用網口下載VxWorks 內核映像時,其需要進行網口初始化,但是正如上文所述,bootConfig.c中完成的所有工作都是為了能夠從外部主機上下載真正的VxWorks操作係統映像,其本身不具有VxWorks 操作係統功能部件;而usrConfig.c 則不然,其需要完成維持VxWorks 操作係統正常運行時所需的所有組件的初始化工作,所以usrConfig.c才是真正進行VxWorks操作係統的啟動工作的。
最後更新:2017-04-03 12:55:38