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