MIPS wince6 0系統的啟動過程

2021-05-18 02:09:44 字數 978 閱讀 2795

總體函式呼叫的過程步驟,其實與其他

arm等等

cpu呼叫的函式過程都是一樣的,只是在**組織結構上有所不同的,至於

arm資料在網路上很多,在這裡我就說說

mips

的系統啟動過程,及其每個函式所處的檔案和目錄位置。

1、startup

函式,這是系統啟動的第乙個函式,這個函式都是

bsp實現的,一般都是放在

$(_platformroot)/bsp

的目錄/src/oal/startup.s

中,在這裡做硬體初始化,其實在裡沒做什麼處理,直接呼叫了

kernelstart

函式。2、

kernelstart

函式,這個函式是放在$(

privateroot

)/winceos/coreos/nk/ldr/mips/mipstart.s

中,在這裡關閉中斷,清理上下文暫存器等等硬體初始化、呼叫

kernelrelocate

函式重定向、呼叫findkernelentry找到kernel.dll的入口(也就是下面要說的nkstartup函式)、呼叫oeminitglobals函式初始化oal與kernel之間的全域性變數g_pnkglobal

(這個變數在$(

privateroot

)winceos/coreos/nk/oemmain/oemglobal.c

中),在這裡與arm有點不同,arm多了個arminit函式處理,arm為什麼要這麼做,就沒做研究。

3、nkstartup

函式,這個函式在$(

privateroot)/

winceos/coreos/nk/kernel/mips/startup.s

中,在這裡呼叫了kernelinit、firstschedule等等其他的函式,開始執行緒呼叫。arm是用c寫的。

大概的啟動過程就這個樣子,其他的cpu的都差不多,具體啟動步驟可能有點不同。

調整ubuntu deepin系統的開機啟動順序

由於需求方面,經常使用ubuntu系統,後來發現deepin系統的ui設計十分驚豔,忍不住做了deepin雙系統。但是日常辦公離不開windows,而deepin和ubuntu又預設windows是第二啟動項,難道要每次開機都得等著選擇啟動項?no 可以通過如下方式來解決 sudo gedit bo...

某個開機自啟的服務無法啟動導致系統無法啟動故障解決

cd etc init.d vim testsrv 輸入以下內容 bin bash chkconfig 2345 99 00 description this service is used for test case 1in start echo the service is started to...

關於android 6 0以上系統的拍照問題

intent intent new intent mediastore.action image capture uri uri 判斷是否是androidn以及更高的版本 注意一下用自己的包名那段字串要和manifest裡對應上 if build.version sdk int build.vers...