嵌入式linux基礎(chǔ)之u-boot目錄結(jié)構(gòu)分析
要了解U-boot,建議先從目錄下手,有了初步的了解,然后再去看makefile,查看整個編譯鏈接過程,快速上手整個框架


然后可以分成以下幾種:
一:和平臺相關(guān)的
和平臺相關(guān),意思就是說和硬件相關(guān),和板子相關(guān),也就是說我們代碼改動基本上也就是改動這些
arch ?與架構(gòu)體系有關(guān)的代碼。分析 uboot 啟動源碼的時候需要重點關(guān)注的
board ?:board 文件夾就是和具體的板子有關(guān)的,我們在做移植或者修改的時候一般在這里嗎
configs ? 配置開發(fā)板的文件
drivers ? 驅(qū)動相關(guān)代碼
dts ? ? ? ? 設(shè)備樹
include ? 頭文件包含,許多驅(qū)動的配置參數(shù)可以在這里面找到
二:和平臺無關(guān)的
api ? ? ? ?與硬件無關(guān)的 API 函數(shù)----->一些庫函數(shù),用到的時候調(diào)用,基本上不會碰到
cmd ? ? 執(zhí)行一些命令的.c文件
commom ? 公用的一些代碼庫
examples ? 例程代碼
disk ? 磁盤代碼,現(xiàn)在這年代都不用磁盤了
fs ?文件系統(tǒng)代碼
lib ?庫文件供調(diào)用
licenses ? 權(quán)限代碼
net ? 網(wǎng)絡(luò)協(xié)議棧庫
post ?不重要
test ? ?不重要
三:文檔
doc
四:工具
scripts:腳本工具,
tools ? ? 或者一些開發(fā)工具鏈
頂層文件:
.u-boot.xxx_cmd ? 這個是編譯生成的,是一些開發(fā)過程中用到的工具指令,
例如燒寫程序
如果我們要用 NXP 提供的 MFGTools 工具向開發(fā)板燒寫 uboot,此時燒寫的是 u-boot.imx
文件,而不是 u-boot.bin 文件。u-boot.imx 是在 u-boot.bin 文件的頭部添加了 IVT、DCD 等信息。
這個工作是由文件.u-boot.imx.cmd 來完成的
.gitignore ? ? git相關(guān)插件
.mailmap ? ? 文件相關(guān)程序的內(nèi)存映射表
config.mk ? ?某個 Makefile 會調(diào)用此文件
Kbuild ? ? ? ?用于生成一些和匯編有關(guān)的文件。
Kconfig ? ? 圖形配置界面描述文件。
MAKEALL ? 一個 shell 腳本文件,幫助編譯uboot 的
Makefile ? ?頂層makefile ?主編譯,最重要的文件
README ? UBOOT使用幫助文檔,這個很重要,建議多熟悉
System.map ?系統(tǒng)代碼映射表