引導(dǎo)程序啟動(dòng)詳細(xì)過程bootromuncmpbin_第1頁
引導(dǎo)程序啟動(dòng)詳細(xì)過程bootromuncmpbin_第2頁
引導(dǎo)程序啟動(dòng)詳細(xì)過程bootromuncmpbin_第3頁
引導(dǎo)程序啟動(dòng)詳細(xì)過程bootromuncmpbin_第4頁
引導(dǎo)程序啟動(dòng)詳細(xì)過程bootromuncmpbin_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、VxWorks引導(dǎo)程序啟動(dòng)詳細(xì)過程(bootrom_uncmp.bin)系統(tǒng)上電初始化CPU;配置處理器的工作模式;配置存儲(chǔ)器;關(guān)閉中斷和看門狗;清除Cache; 設(shè)置堆棧指針;特定于CPU的其他初始化;配置啟動(dòng)參數(shù)(冷啟動(dòng)還是熱啟動(dòng))跳到romStart(int startType).| romInit.s - romInit() :|將Flash中的啟動(dòng)代碼拷貝到RAM中,最后調(diào)用ROM或RAM中的usrInit();拷貝的內(nèi)容與生成的內(nèi)核類型有關(guān),但通常都需將數(shù)據(jù)段拷貝到RAM中。如果是壓縮格式映象,除了拷貝還要進(jìn)行解壓。最后調(diào)用sysALibs.s中的sysInit(int start

2、Type).|bootInit.c -romStart(int startType) :|用于用于完成最后的CPU初始化部分,并且關(guān)閉系統(tǒng)的其他硬件設(shè)備,為內(nèi)核的初始化和啟動(dòng)準(zhǔn)備一個(gè)單任務(wù)的環(huán)境(無中斷,無任務(wù))。完成內(nèi)核激活的準(zhǔn)備工作:(1)設(shè)備處于靜止?fàn)顟B(tài);(2)處理器中斷處于禁止?fàn)顟B(tài)。引導(dǎo)階段已經(jīng)實(shí)現(xiàn)了(2),一次該函數(shù)功能就是使設(shè)備處于靜止?fàn)顟B(tài)。0 用戶定義BSP初始化SYS_HW_INIT_0 ();(sysHwInit0())無1 初始化Cache;cacheLibInit()2 清零BBS;bzero (edata, end - edata);3 暗黃安裝中斷向量; excVec

3、Init ( );4 置硬件靜止?fàn)顟B(tài);sysHwInit ();5 配置Wind內(nèi)核,初始化任務(wù)管理和任務(wù)隊(duì)列 usrKernelInit ();6 使能Cache; cacheEnable(INSTRUCTION_CACHE);7 激活跟任務(wù); kernelInit (FUNCPTR) usrRoot,,)|bootConfig.c -usrInit(int startType):|負(fù)責(zé)在內(nèi)核激活前,將硬件置于靜止?fàn)顟B(tài):1 安裝中斷向量ISR: S3C2410ExcVecSet();2 安裝IRQ/SVC 的堆棧設(shè)置程序:_func_armIntStackSplit = sysIntStac

4、kSplit;3 復(fù)制命令行:strncpy(sysBootLine,DEFAULT_BOOT_LIN,strlen(DEFAULT_BOOT_LINE)+1);4 初始化串口設(shè)備,數(shù)據(jù)結(jié)構(gòu)和禁止串口中斷: sysSerialHwInit ();| sysLib.c - sysHwInit():| usrKernel.c - usrKernelInit(void)配置Wind內(nèi)核,初始化任務(wù)管理和任務(wù)隊(duì)列:1. 初始化類庫: classLibInit ();2. 初始化任務(wù)變量: taskLibInit ();3. 配置內(nèi)核任務(wù)隊(duì)列: qInit (&readyQHead, Q_PRI_LIS

5、T);qInit (&activeQHead, Q_FIFO);qInit (&tickQHead, Q_PRI_LIST);workQInit ();| bootConfig.c -usrRoot (char *pMemPoolStart, unsigned memPoolSize):用于完成系統(tǒng)最后的初始化以及所有硬件的初始化:1 初始化系統(tǒng)內(nèi)存池:memInit (pMemPoolStart, memPoolSize);2 安裝始終中斷ISR,設(shè)置始終頻率,使能時(shí)鐘: sysClkConnect(FUNCPTR) usrClock, 0);/、connect clock interrup

6、t routine sysClkRateSet (SYS_CLK_RATE); /* set system clock rate */ sysClkEnable (); /* start it */3 初始化IOS:selectInit (NUM_FILES);iosInit (NUM_DRIVERS, NUM_FILES, /null);consoleFd = NONE;4 初始化串口設(shè)備,安裝串口設(shè)備驅(qū)動(dòng)程序,并啟動(dòng)串口設(shè)備:/* */5 初始化WDB: wdbConfig();/* configure and initialize the WDB agent */ vxBootFile0

7、 = NULL;6 打開Target Server Console:/* for Target Server Console */ consoleFd = open (/vio/0, O_RDWR, 0);7 設(shè)置標(biāo)準(zhǔn)I/O輸入輸出: ioGlobalStdSet (STD_IN, consoleFd); ioGlobalStdSet (STD_OUT, consoleFd); ioGlobalStdSet (STD_ERR, consoleFd);8 安裝管道驅(qū)動(dòng)程序: pipeDrv ();9 初始化各種可得設(shè)備:/* */10啟動(dòng)bootCmdLoop任務(wù): taskSpawn (tBoot, bootCmdTaskPriority, bootCmdTaskOptions,b

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論