1. 程式人生 > >u-boot原始碼整體框架

u-boot原始碼整體框架

原始碼解壓以後,我們可以看到以下的檔案和資料夾:

cpu

與處理器相關的檔案。每個子目錄中都包括 cpu.c

interrupt.cstart.Su-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_*.cU- boot環境變數處理程式碼 env_*.c、等都位於該目錄下

drivers

包含幾乎所有外圍晶片的驅動,網絡卡、USB、串列埠、LCD

Nand Flash 等等

disk

fs net

支援的 CPU無關的重要子系統:

磁碟驅動的分割槽處理程式碼檔案系統:FAT

JFFS2EXT2

網路協議:NFSTFTPRARPDHCP等等

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