Uboot 源碼分析----代碼整體結構分析

1. 文件夾總體功能分析

- board 目標板相關文件,主要包含SDRAM、FLASH驅動;
- common 獨立於處理器體系結構的通用代碼,如內存大小探測與故障檢測;
- cpu 與處理器相關的文件。如mpc8xx子目錄下含串口、網口、LCD驅動及中斷初始化等文件;
- driver 通用設備驅動,如CFI FLASH驅動(目前對INTEL FLASH支持較好)
- doc U-Boot的說明文檔;
- examples可在U-Boot下運行的示例程序;如hello_world.c,timer.c;
- include U-Boot頭文件;尤其configs子目錄下與目標板相關的配置頭文件是移植過程中經常要修改的文件;
- lib_xxx 處理器體系相關的文件,如lib_ppc, lib_arm目錄分別包含與PowerPC、ARM體系結構相關的文件;
- net 與網絡功能相關的文件目錄,如bootp,nfs,tftp;
- post 上電自檢文件目錄。尚有待於進一步完善;
- rtc RTC驅動程序;
- tools 用於創建U-Boot S-RECORD和BIN鏡像文件的工具;

 

2.一般通用移植功能

爲了使U-Boot支持新的開發板,一種簡便的做法是在U-Boot已經支持的開發板中選擇一種和目標板接近的,並在其基礎上進行修改。代碼修改的步驟如下:
1)在board目錄下創建smdk2410目錄,添加smdk2410.c、flash.c、memsetup.s、u-boot.lds和config.mk等;
2)在cpu目錄下創建arm920t目錄,主要包含start.s、interrupts.c、cpu.c、serial.c和speed.c等文件;
3)在include/configs目錄下添加smdk2410.h,它定義了全局的宏定義等;
4)修改u-boot根目錄下的Makefile文件:
smdk2410_config : unconfig@./mkconfig $(@:_config=) arm arm920t smdk2410
5)運行make smdk2410_config,如果沒有錯誤,就可以開始進行與硬件相關的代碼移植工作。由於這部分代碼與硬件緊密相關,所以要熟悉開發板的硬件配置,可參考各芯片的用戶手冊。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章