ARM Linux啟動流程分析

2021-10-03 22:42:11 字數 597 閱讀 2342

linux核心啟動分三個階段

1、解壓縮

2、檢查架構相關

3、start_kernel c 語言環境

關於以下幾篇文章一些名詞(我的理解)

1、鏈結位址  (虛擬位址)         這是乙個虛擬位址,對於32位cpu(虛擬位址空間的範圍 0 - 4g)

通過arch/arm/kernel/vmlinux.lds中開始部分就可以看到

. = 0x80000000 + 0x00008000;       **段起始位址 這是乙個虛擬位址
2、執行位址   (實體地址)        真實存在在ddr中的位址

在沒有開啟mmu之前,我們是不可能執行在虛擬位址空間上的,啟動之前,我們肯定需要在ddr中執行它

1、自解壓階段

arm linux解析之壓縮核心zimage的啟動過程           這個很厲害

arm linux 3.10.61 的啟動 —— (一)解壓縮階段     這個有很多圖的

2、跟架構檢查相關的

裝置樹學習(四、核心head.s對uboot傳參的處理)                           講的很詳細

arm linux 啟動流程分析

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

Arm linux 啟動流程

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

Arm linux啟動流程

linux啟動 分為以下三部分 彙編編寫的體系結構相關的部分 c語言編譯的體系結構相關的部分 c語言編譯的體系結構無關的部分 核心映象的生成 核心啟動流程 1.彙編部分 核心啟動入口 核心編譯連線後生成的elf映像檔案是vmlinux,從核心源 頂層目錄的makefile中可以找到vmlinux的生...