前面兩篇文章主要是有乙個感性的認識,用的官網提供的補丁,沒有過多的提及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跟硬體關係...