詳解uboot各目錄下的文件作用
uboot下載地址:http://ftp.denx.de/pub/u-boot/
1、目錄分布
2、目錄結(jié)構(gòu)變化:
u-boot-2010.03及以前版本
├── api 存放uboot提供的接口函數(shù)
├── board 根據(jù)不同開發(fā)板定制的代碼,代碼也不少
├── common 通用的代碼,涵蓋各個方面,已命令行處理為主
├── cpu 與體系結(jié)構(gòu)相關(guān)的代碼,uboot的重頭戲
├── disk 磁盤分區(qū)相關(guān)代碼
├── doc 文檔,一堆README開頭的文件
├── drivers 驅(qū)動,很豐富,每種類型的設(shè)備驅(qū)動占用一個子目錄
├── examples 示例程序
├── fs 文件系統(tǒng),支持嵌入式開發(fā)板常見的文件系統(tǒng)
├── include 頭文件,已通用的頭文件為主
├── lib_【arch】 與體系結(jié)構(gòu)相關(guān)的通用庫文件
├── nand_spl NAND存儲器相關(guān)代碼
├── net 網(wǎng)絡(luò)相關(guān)代碼,小型的協(xié)議棧
├── onenand_ipl
├── post 加電自檢程序
└── tools 輔助程序,用于編譯和檢查uboot目標文件
從u-boot-2010.06版本開始把體系結(jié)構(gòu)相關(guān)的內(nèi)容合并,原先的cpu與lib_arch內(nèi)容全部納入arch中,并且其中增加inlcude文件夾;分離出通用庫文件lib。u-boot-2010.06及以后版本
├── api 存放uboot提供的接口函數(shù)
├── arch 與體系結(jié)構(gòu)相關(guān)的代碼,uboot的重頭戲
├── board 根據(jù)不同開發(fā)板定制的代碼,代碼也不少
├── common 通用的代碼,涵蓋各個方面,已命令行處理為主
├── disk 磁盤分區(qū)相關(guān)代碼
├── doc 文檔,一堆README開頭的文件
├── drivers 驅(qū)動,很豐富,每種類型的設(shè)備驅(qū)動占用一個子目錄
├── examples 示例程序
├── fs 文件系統(tǒng),支持嵌入式開發(fā)板常見的文件系統(tǒng)
├── include 頭文件,已通用的頭文件為主
├── lib 通用庫文件
├── nand_spl NAND存儲器相關(guān)代碼
├── net 網(wǎng)絡(luò)相關(guān)代碼,小型的協(xié)議棧
├── onenand_ipl
├── post 加電自檢程序
└── tools 輔助程序,用于編譯和檢查uboot目標文件
3、移植工作涉及的目錄情況
從uboot代碼根目錄,可以看出其已經(jīng)非常龐大,功能也很豐富。
移植工作最主要的是看對應(yīng)的處理器和開發(fā)板代碼,2010.06版本以后處理器相關(guān)的代碼集中在arch、board目錄。(以前版本主要在cpu和board目錄)
先看一下arch目錄:
arch
├── arm
├── avr32
├── blackfin
├── i386
├── m68k
├── microblaze
├── mips
├── nios2
├── powerpc
├── sh
└── sparc
如果我們移植的是mips的處理器,所以參考一下arch/mips目錄:
arch/mips
├── cpu
├── include
└── lib
arch/mips目錄下有三個目錄,其他的處理器目錄下也是這個結(jié)構(gòu):
cpu子目錄對應(yīng)一種處理器的不同產(chǎn)品型號或者系列;
include子目錄是處理器用到的頭文件;
lib目錄對應(yīng)用到處理器公用的代碼;
下面看看cpu下的內(nèi)容,arch/mips/cpu目錄下的內(nèi)容:
arch/mips/cpu
├── asc_serial.c
├── asc_serial.h
├── au1x00_eth.c
├── au1x00_serial.c
├── au1x00_usb_ohci.c
├── au1x00_usb_ohci.h
├── cache.S
├── config.mk
├── cpu.c
├── incaip_clock.c
├── incaip_wdt.S
├── interrupts.c
├── Makefile
└── start.S 整個uboot代碼入口點
目前最新版本(2011.6版本開始)中cpu目錄中建立mips32目錄,把incaip和au1x00也分類放在不同的目錄中。
u-boot.lds是ld程序也就是連接器的腳本文件,這個文件描述了如何連接目標文件,ld程序會根據(jù)這個文件的指示按照需求把不同的目標文件連接在一起生成供燒寫到開發(fā)板的程序。
該文件放在board對應(yīng)的目錄中。
4、移植u-boot的版本選擇情況
由于u-boot的各版本沒有重大變化,各版本移植起來基本相同,也正因為如此,大多數(shù)版本均有人移植過,主要是arm體系結(jié)構(gòu)的。
如cortex A8使用 u-boot-1.3.4;cortex M3 上u-boot-1.1.6、u-boot-1.2.0等均有人移植過。
考慮到我們目前的編譯器較新,編譯舊版本u-boot時會出現(xiàn)錯誤,警告也很多;新版本的u-boot目錄結(jié)構(gòu)也較清晰,因此選用較新版本的u-boot。
最新版本(2011.06)Makefile中沒有mips的部分,不知道為什么。(2011.03版本中同樣也是)
u-boot-2010.12的Makefile沒有問題,編譯incaip通過,沒有任何警告和錯誤,因此最終選擇u-boot-2010.12作為我們的移植版本。
以上所述是小編給大家介紹的uboot各目錄下的文件作用,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
如何讓W(xué)indowsForm縮小到系統(tǒng)匣過程詳解
這篇文章主要介紹了讓W(xué)indowsForm縮小到系統(tǒng)匣過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-09-09man -f/-k [keyword]在fedora 29 中報錯nothing appropriate
這篇文章主要介紹了man -f/-k [keyword]在fedora 29 中報錯nothing appropriate ,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-04-04鴻蒙OS開發(fā)環(huán)境搭建之DevEco Studio IDE下載安裝過程詳解
這篇文章主要介紹了鴻蒙OS開發(fā)環(huán)境搭建之DevEco Studio IDE下載安裝,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09HarmonyOS開發(fā)基礎(chǔ)知識之Component和ComponentContainer區(qū)別(鴻蒙教程)
這篇文章主要介紹了HarmonyOS開發(fā)基礎(chǔ)知識之Component和ComponentContainer區(qū)別(鴻蒙教程),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09windows下使用Xshell時出現(xiàn)丟失msvcr110.dll等dll問題
這篇文章主要介紹了windows下使用Xshell時出現(xiàn)丟失msvcr110.dll等dll問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-04-04Windows下修改Bios,安裝惠普 HP OEM XP [圖文教程]
Windows下修改Bios,安裝惠普 HP OEM XP [圖文教程]...2007-04-04