uboot 核心 根檔案系統啟動流程

2021-08-21 05:33:08 字數 651 閱讀 7468

uboot的啟動流程

uboot的啟動分為兩個階段。

第一階段:設定異常向量表,設定arm核為svc模式,關cache和關mmu,

關看門狗,初始化時鐘,串列埠,記憶體,初始化棧空間,清bss。跳轉到第二階 段。

第二階段:硬體的初始化,讀取環境變數,將核心從emmc載入到記憶體中,

呼叫核心

kernel的啟動流程

0.設定cpu為svc模式,關中斷

1. 為核心的解壓做準備(記憶體,中斷等等)

2.核心自解壓 (vmlinux.lds)

3.跳轉到入口位址執行(head.s--->main.c)start_kernel

執行核心

4.硬體的初始化(初始mm  mmu  中斷(request_irq),軟中斷初始化,核心定時器) (解析裝置裝置樹,執行驅動)

5.掛載根檔案系統

6.開啟第乙個使用者程序init,執行linuxrc應用程式

rootfs執行過程

linuxrc呼叫inittab檔案(規定作業系統行為檔案)獲取作業系統行為。

執行啟動第乙個指令碼rcs,rcs中呼叫mount -a 掛載fstab中所有裝置

當控制台登入的時候,執行bin/sh命令,進入shell命令列(在進入前,會執行profile,設定環境變數)

uboot 核心 根檔案系統啟動流程

uboot的啟動流程 uboot的啟動分為兩個階段。第一階段 設定異常向量表,設定arm核為svc模式,關cache和關mmu,關看門狗,初始化時鐘,串列埠,記憶體,初始化棧空間,清bss。跳轉到第二階 段。第二階段 硬體的初始化,讀取環境變數,將核心從emmc載入到記憶體中,呼叫核心。kernel...

分析Android 根檔案系統啟動

在android系統啟動時,核心引導引數上一般都會設定 init init 這樣的話,如果核心成功掛載了這個檔案系統之後,首先執行的就是這個根目錄下的init程式。這個程式所了什麼呢?我們只有rfsc read the ing source code init程式原始碼在android官方原始碼的s...

系統啟動掛載根檔案系統時Kernel panic

製作了根檔案系統,在啟動之後停在這裡了 net registered protocol family 1 net registered protocol family 17 vfs mounted root cramfs filesystem readonly.freeing init memory...