U boot移植之配置編譯Makefile分析

2021-07-31 07:05:10 字數 1815 閱讀 1107

前面兩篇文章主要是有乙個感性的認識,用的官網提供的補丁,沒有過多的提及u-boot內部的細節,用的是u-boot 1.1.6。

從這篇文章開始才是真正意義上的移植u-boot,基於u-boot 2009.11。

我將按照以下幾個步驟分析makefile ?

一:makefile重要變數一覽表,刪除makefile一些無關的資訊。

二:make jz2440_config 配置過程分析。

三:makefileb編譯過程分析。

一:makefile重要變數一覽表,刪除makefile一些無關的資訊

makefile變數

含義變數值

狀態u_boot_versionu-boot版本代號

u-boot 2009.11

靜態設定

hostarch主機架構

i386

動態測試 uname -m

hostos主機作業系統名稱

linux

動態測試 uname -s

build_dir編譯結果輸出目錄

u-boot 2009.11/

動態&靜態指定

objtree輸出目錄

u-boot 2009.11/

靜態srctreeu-boot原始碼目錄

u-boot 2009.11/

靜態curdir當前目錄

u-boot 2009.11/

靜態topdir頂層目錄

u-boot 2009.11/

靜態mkconfig配置指令碼

u-boot 2009.11/mkconfig

靜態cross_compile編譯工具鏈

arm-linux-

靜態objs所有用到的檔案集合

*.o動態

libs所有用到的庫檔案集合

*.a動態

all所有輸出目標

u-boot.bin

靜態allmakefile預設目標

all靜態

smdk2410_configsmdk2410開發板配置目標

依賴 unconfig

靜態jz2440_configjz2440開發板配置目標

依賴 unconfig

靜態clean控制清理 目標

編譯過程中生成的檔案靜態

刪除makefile檔案中與本開發板無關的資訊

完整的makefile 122kb大小,刪除不必要的資訊後大小約 13kb大小。

二:建立jz2440的配置

待續……

uboot移植之uboot和kernel的引數傳遞

從uboot啟動核心的形式thekernel 0,machid,bd bi boot params 可以看出uboot給核心傳遞了3個引數,第1個是0,第2個是機器碼,第3個是引數列表在sdram的起始位置 剛好滿足一下呼叫核心的條件 r0 0。r1 機器型別id r2 啟動引數標記列表在ram 中...

uboot移植之uboot命令體系解析

1 回歸到main loop uboot啟動第二階段的最後,進入死迴圈main loop 函式,命令列中沒輸出一次命令,就會執行一次main loop函式,完成一次命令的獲取 解析和執行。2 uboot命令體系的實現原理 uboot中裡面維護了很多命令,每個命令對應乙個結構體變數,當我們在命令列輸入...

移植U Boot之BootLoader簡介

一 bootloader的認識 bootloader的作用是初始化硬體裝置,準備好軟體環境,將作業系統核心複製到記憶體中,然後啟動核心。為了開發方便,工程師們增強了bootloader的功能,實際上,在生產的產品中並不需要這些功能,為了提高我們的開發效率而增加功能而已。bootloader跟硬體關係...