|
(1)、處理uboot傳入的參數(shù):機(jī)器ID、啟動(dòng)參數(shù) 0、判斷是否支持這個(gè)CPU 1、判斷是否支持這個(gè)單板 2、建立頁(yè)表 3、使能MMU,uboot啟動(dòng)內(nèi)核時(shí)傳入的機(jī)器ID 4、調(diào)到start_kernel,第一個(gè)c函數(shù) (2)、鏈接:根文件系統(tǒng) (3)、最終目的:應(yīng)用程序
======================================================================= 內(nèi)核啟動(dòng)流程: arch/arm/kernel/head.s start_kernel setup_arch // 解析u-boot傳入的啟動(dòng)參數(shù) setup_commond_line // retset_init kernel_init prepare_namespace mount_root // 掛載跟文件系統(tǒng) init_post // 執(zhí)行應(yīng)用程序 ====================================================================== 內(nèi)核啟動(dòng)流程分析: 1、內(nèi)核打補(bǔ)丁、編譯、燒寫(xiě)、試驗(yàn) 2、內(nèi)核功能、結(jié)構(gòu),結(jié)合Makefile、Kconfig進(jìn)行分析 1)配置 2)分析Makefile:第一個(gè)文件、鏈接腳本 3、內(nèi)核啟動(dòng)過(guò)程分析 1)比較機(jī)器ID 2)解析uboot傳入的啟動(dòng)參數(shù) 3)掛載根文件系統(tǒng)、執(zhí)行第一個(gè)應(yīng)用程序 4)分區(qū) ===================================================================== 1、uboot:?jiǎn)?dòng)內(nèi)核 2、內(nèi)核:?jiǎn)?dòng)應(yīng)用程序 3、構(gòu)建:根文件系統(tǒng) ====================================================================== busybox ===================================================================== init進(jìn)程 1)讀取配置文件 2)解析配置文件 3)執(zhí)行(腳本程序) |
|
|