uboot移植一uboot架構分析


開發環境:

  1 .開發板mini2440

  2. u-boot-2010.12

參考i資料:https://blog.csdn.net/androidbbc/article/details/50961163

      http://www.cnblogs.com/kele-dad/p/8969174.html

一、下載u-boot- 2010.12,並且解壓

二、分析u-boor-2010.12

api:      存放uboot提供的接口函數

config.mk:   根據不同開發板定制的代碼,代碼也不少

drivers:    驅動,很豐富,每種類型的設備驅動占用一個子目錄

MAINTAINERS:

net:      網絡相關代碼,小型的協議棧

snapshot.commit

arch      與體系結構相關的代碼,uboot的重頭戲

COPYING

examples    示例程序

MAKEALL

onenand_ipl

tools      輔助程序,用於編譯和檢查uboot目標文件
board       根據不同開發板定制的代碼,代碼也不少

CREDITS

fs       文件系統,支持嵌入式開發板常見的文件系統

Makefile

post      加電自檢程序

boards.cfg

disk      磁盤分區相關代碼

include    頭文件,已通用的頭文件為主

mkconfig

README
common     通用的代碼,涵蓋各個方面,已命令行處理為主

doc      文檔,一堆README開頭的文件

lib        通用庫文件

nand_spl    NAND存儲器相關代碼

rules.mk

> 移植的主要相關的目錄為arch、board目錄

arm目錄

cpu arm920t目錄:

vi u-boot.lds  

可以看到第一個執行的程序是start.s

>cd board/samsung/smdk2410/   進入和單板相關的目錄

lowlevel_init.s :和內存控制初始化相關的函數

smdk2410.c是和單板初始化相關的函數

 

三、分析u-boot編譯流程

一般我們編譯u-boot的流程為:

1. 配置 make xxx_config

2. 編譯 make

> make xxx_config 分析

當這個命令執行時,它會根據 kconfig 及 xx_defconfig 來生成 .config 文件

  • Makefiles 有 5 個部分:
    • Makefile:頂層 Makefile,提供針對各種目標的接口,一般和實現無關。當我們要針對某個目標進行分析時,作為起點,總是嘗試在此文件中找到對應的目標定義,然后沿着該定義深入挖掘。
    • .config:uboot 配置文件,如果是內核,就是內核的配置文件,在配置 uboot時候生成,所有的 Makefile 文件(包括頂層目錄及各級子目錄)都是根據 .config 來決定使用哪些文件。
    • arch/$(ARCH)/Makefile:平台相關 Makefile,提供針對不同架構的目標,變量和規則定義。文件位置比較固定
    • scripts/Makefile.*:Makefile 共用的通用規則、腳本等
    • kbuild Makefiles:各級子目錄下的  Makefile,相對簡單,被上一層 Makefile 調用來編譯當前目錄下的文件。

  頂層 Makefiles 讀取從uboot 配置程序中生成的 .config 文件 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM