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...