Arm linux啟動流程

2021-07-10 08:35:32 字數 862 閱讀 5981

linux啟動**分為以下三部分:

彙編編寫的體系結構相關的部分

c語言編譯的體系結構相關的部分

c語言編譯的體系結構無關的部分

核心映象的生成:

核心啟動流程-1.彙編部分:

核心啟動入口**:

核心編譯連線後生成的elf映像檔案是vmlinux,從核心源**頂層目錄的makefile中可以找到vmlinux的生成規則:

因此,非壓縮 arm linux 核心的入口點是arch\arm\kernel\head.s中的stext

核心啟動流程-c語言部分

這個階段由以下函式開始

asmlinkage void __init start_kernel(void)到第乙個使用者程序init結束,呼叫了一系列函式對核心元件初始化,其中start_kernel,rest_init,kernel_init,init_post等4函式主線組成整個初始化過程

核心啟動流程-busybox的init程序

Arm linux 啟動流程

了解完kernel啟動以前的彙編之後我們來看看正式的c語言啟動 也就是我們的start kernel函式了。start kernel相當大,裡面每乙個呼叫到的函式都足夠我們傷腦筋了,我這裡只是淺嘗輒止的描述一下函式的功能,從而對kernel啟動的過程有乙個比較直觀的了解。很多函式真正理解需要對lin...

arm linux 啟動流程分析

arm linux啟動總體過程 bootloader kernel rootfs.bootloader 一般的soc中一般會有一塊sdram 又叫墊腳石 當soc上電時,soc中固化的 會根據啟動方式從nand,emmc等不同儲存上,載入bootloader到sdram,進而執行。也就是說soc上電...

ARM linux 啟動流程 整理

基本的初始化工作 關閉看門狗,設定ddr nand flash 啟動核心 kernel初始化步驟 進入kernel階段,系統會先探測可識別的所有硬體裝置 隨後系統會載入裝置驅動程式,並生成乙個臨時唯讀的rootfs系統 在執行了rootfs後,系統將開始執行第乙個初始化程式 init 核心檔案位置 ...