1.在uboot原始碼包中分析其中makefile。因為編譯流程為:
1.make mini2440_config
2.make
2.makefile中有:
mini2440_config : unconfig
@$(mkconfig) $(@:_config=) arm arm920t mini2440 tekkamanninja s3c24x0
//表示執行第乙個make mini2440_config語句時,相當於執行@$(mkconfig) $(@:_config=) arm arm920t mini2440 tekkamanninja s3c24x0
a.而mkconfig變數定義為:mkconfig:=$(srctree)/mkconfig 表示原始碼樹下的mkconfig檔案。
b.$(@:_config=)中$@表示目標mini2440_config;_config= 表示將其中的_config字串替換為空,故替換後mini2440;後面的保持不變
c.故執行make mini2440_config相當於執行命令:
mkconfig mini2440 arm arm920t mini2440 tekkamanninja s3c24x0;
3.分析指令碼檔案mkconfig:
[ "$"] || board_name="$1"
//如果board_name定義則不執行,如果未定義則board_name值為$1
//注意$1指的是mini2440,故board_name=mini2440 而且:
//mkconfig mini2440 arm arm920t mini2440 tekkamanninja s3c24x0;
// $0 $1 $2 $3 $4 $5 $6
4.echo "configuring for $ board..."這句話在make mini2440_config之後就會列印出來。
5.生成一些鏈結檔案
6.echo "arch =$2"> config.mk//"arch=arm"放入新建的config.mk檔案中
echo "cpu =$3">>config.mk//"cpu=arm920t"追加到 config.mk檔案中
echo "board=$4">>config.mk//"board=mini2440"追加到 config.mk檔案中
7.[ "$5" ]&&[ "$5"!="null" ]&&echo "vendor=$5">>config.mk//第五個引數引數,輸出並追加入config.mk檔案中
8.新建乙個config.h檔案,內容為:
/*automatically generated=do not edit*/
#include
uboot學習 配置過程分析
一 uboot的功能分析 結合uboot 1.1.16版本說明uboot的配置過程。二 uboot的配置 編譯和鏈結過程分析 結合頂層makefile 編譯乙個可用的uboot.bin檔案一般經過以下步驟 首先是配置,make smdk2410 config,然後是make all完成編譯,最後生成...
u boot之命令分析 6
u boot之命令分析 分析run command run command process macros token,finaltoken 處理巨集 解析傳進來的命令和引數,並將他們提取出來 if argc parse line finaltoken,argv 0 look up command i...
MIPS之u boot流程分析
1 系統上電後 由uboot的鏈結檔案 u boot arch mips cpu u boot.lds知 entry start 程式入口點是 u boot arch mips cpu xburst start.s 2 由la t9,board init f 知跳轉到board init f 函式 ...