u-boot原始碼整體框架
原始碼解壓以後,我們可以看到以下的檔案和資料夾:
cpu |
與處理器相關的檔案。每個子目錄中都包括 cpu.c和 interrupt.c、start.S、u-boot.lds。 cpu.c 初始化 CPU、設定指令 Cache和資料 Cache 等 interrupt.c 設定系統的各種中斷和異常 start.S 是 U-boot啟動時執行的第一個檔案,它主要做最早其的系統初始化,程式碼重定向和設定系統堆疊,為進入 U-boot 第二階段的 C程式奠定基礎 u-boot.lds 連結指令碼檔案,對於程式碼的最後組裝非常重要 |
board |
已經支援的所有開發板相關檔案,其中包含 SDRAM 碼、Flash底層驅動、板級初始化檔案。 其中的 config.mk 檔案定義了 TEXT_BASE,也就是程式碼在記憶體的其實地址,非常重要。 |
common |
與處理器體系結構無關的通用程式碼,U-boot的命令解析程式碼 /common/command.c、所有命令的上層程式碼cmd_*.c、U- boot環境變數處理程式碼 env_*.c、等都位於該目錄下 |
drivers |
包含幾乎所有外圍晶片的驅動,網絡卡、USB、串列埠、LCD、 Nand Flash 等等 |
disk fs net |
支援的 CPU無關的重要子系統: 磁碟驅動的分割槽處理程式碼檔案系統:FAT 網路協議:NFS、TFTP、RARP、DHCP等等 |
include |
標頭檔案,包括各 CPU的暫存器定義,檔案系統、網路等等 configs 子目錄下的檔案是與目標板相關的配置標頭檔案 |
doc |
U-Boot 的說明文件,在修改配置檔案的時候可能用得上 |
lib_arm lib_avr32 lib_mips lib_nios lib_blackfin lib_nios2 lib_generic lib_ppc lib_i386 lib_sh lib_m68k lib_sparc lib_microblaze |
處理器體系相關的初始化檔案 比較重要的是其中的 board.c檔案,幾乎是 U-boot 的所有架構第二階段程式碼入口函式和相關初始化函式存放的地方。 |
api examples |
外部擴充套件應用程式的 API和範例 |
nand_spl onenand_ipl post |
一些特殊構架需要的啟動程式碼和上電自檢程式程式碼 |
libfdt |
支援平坦裝置樹(flattened device trees)的庫檔案 |
tools |
編譯 S-Record或 U-Boot 映像等相關工具,製作 bootm 引導 的核心映像檔案工具 mkimage原始碼就在此 |
Makefile MAKEALL config.mk rules.mk mkconfig |
控制整個編譯過程的主 Makefile檔案和規則檔案 |
CHANGELOG CHANGELOG-before-U-Boot-1.1.5 COPYING CREDITS MAINTAINERS README |
一些介紹性的文件、版權說明 |
標為紅色的是移植時比較重要的檔案或資料夾。
轉自:http://blog.chinaunix.net/uid-26444756-id-3160111.html