VxWorks_BSP移植_1
icepeak 發(fā)表于 2006-5-29 8:33:00
好多天沒更新blog了,中間忙著整另外一個blog,所以無暇顧及.現(xiàn)在,把前幾天學(xué)習(xí)筆記送上來!
在講述BSP的移植之前,先討論一下Vxworks的啟動過程:
在ARM系統(tǒng)中,系統(tǒng)上電后會自動加載并運行位于0地址的指令,通常在這個地方會放置一條跳轉(zhuǎn)指令,使它跳轉(zhuǎn)到_romInit()(初始化的入口)
romInit()進(jìn)行處理器模式的設(shè)置,關(guān)閉中斷,初始化內(nèi)存以及一些必要的硬件配置.
romInit()執(zhí)行完上述工作以后,跳轉(zhuǎn)到romStart(),它負(fù)責(zé)將ROM映像copy到RAM中,如果ROM映像中不含Vxworks內(nèi)核,那么啟動代碼要負(fù)責(zé)將
Vxworks內(nèi)核加載到RAM中去.接下來要開始運行Vxworks內(nèi)核的入口程序sysInit(),它主要實現(xiàn)一些與romInit()類似的功能,然后還是調(diào)用
Vxworks內(nèi)核的第一個例程usrInit(),usrInit()會根據(jù)BSP的設(shè)置,最終完成整個內(nèi)核的前期初始化工作.在usrInit最后,由kernelInit()激
活多任務(wù)環(huán)境,并創(chuàng)建一個任務(wù)來安裝設(shè)備驅(qū)動程序.同時啟動設(shè)備,初始化Vxworks系統(tǒng)庫,調(diào)用應(yīng)用程序.
VxWorks_BSP移植_2
icepeak 發(fā)表于 2006-5-29 8:49:00
弄清楚VxWorks啟動的順序后,我們來討論BSP的移植,VxWorks的BSP在先前的日志中已經(jīng)有說明,大家可以查閱了解它和bootloader的區(qū)別和
聯(lián)系.
不同的Target的BSP都不同,同種CPU的不同板子也會不同,所以移植修改是不可避免的,我們可以參考$(WIND_BASE)\target\config下的BSP
文件,找一個比較接近的來修改!關(guān)于這個目錄的組織結(jié)構(gòu),網(wǎng)上有很多介紹,這里不贅述.
首先要重點修改的就是Makefilie文件和config.h文件,這兩個文件跟目標(biāo)板的硬件配置有很大的關(guān)系,主要是CPU類型,內(nèi)存的大小和目標(biāo)板
的外圍設(shè)備的配置情況.關(guān)于這兩個文件的修改下次會詳細(xì)注釋!