開發板配置 make board config

2021-06-20 12:20:05 字數 3652 閱讀 2883

隨便找個uboot源**就可以啦。

首先進入頂層makefile。有很多相對不同板子的配置,如:

gec2440_config:unconfig

@$(mkconfig) $(@:_config=) arm arm920t gec2440 samsung s3c24x0

1.配置編譯uboot第一步都是make *****_config。既然是make就得執行makefile。makefile就包括很多上面的語句,make *****_config,首先執行的就是上面的配置資訊。@$(mkconfig)啥意思,其實在makefile前面就有定義@$(mkconfig) := $(srctree)/mkconfig,也就是根目錄的mkconfig檔案。$(@:_config=)的意思就是吧make *****_config的_config給去到。所以gec2440_config執行./mkconfig  gec2440  arm arm920t gec2440 samsung s3c24x0

。而unconfig的作用在於去除原先的配置資訊,即make ***_config與make unconfig互逆關係。

2.ok,現在執行make gec2440_config,那麼就會出現:

configuring for gec2440 board...

現在看看有發生那些變化。由於上面的命令相當於執行./mkconfig  arm arm920t gec2440 samsung s3c24x0。所以先進去根目錄的mkconfig檔案看看。

首先,要明確一點:./mkconfig  gec2440  arm arm920t gec2440 samsung s3c24x0使得$0=./mkconfig,$1=arm,$2=arm920t,$3=gec2440, $4=samsung, $5=s3c24x0

下面是mkconfig的內容:

[ $# -lt 4 ] && exit 1

[ $# -gt 6 ] && exit 1

if [ "$" -a "$" != "$2" ]; then

echo "failed: \$arch=$, should be '$2' for $" 1>&2

exit 1

fi//在終端列印config  for gec2440  board....

echo "configuring for $ board..."

## 產生鏈結檔案

#if [ "$srctree" != "$objtree" ] ; then   //是否在源**目錄下編譯uboot,不是就執行下面,else就是表示是在源**目錄編譯

mkdir -p $/include

mkdir -p $/include2

cd $/include2

rm -f asm

ln -s $/include/asm-$2 asm

lnprefix="../../include2/asm/"

cd ../include

rm -rf asm-$2

rm -f asm

mkdir asm-$2

ln -s asm-$2 asm

else

cd ./include    //進入include

rm -f asm

ln -s asm-$2 asm    //ln -s  include/asm-arm   asm

firm -f asm-$2/arch            //刪除include/asm-arm/arch

if [ -z "$6" -o "$6" = "null" ] ; then   //由於$6=s3c24x0,執行而else下面

ln -s $arch-$3 asm-$2/arch   

else

ln -s $arch-$6 asm-$2/arch  //ln -s include/arch-s3c24x0  include/asm-arm/arch

fiif [ "$2" = "arm" ] ; then

rm -f asm-$2/proc  //刪除include/asm-arm/proc

ln -s $proc-armv asm-$2/proc  //ln -s include/proc-arm asm-arm/profi#

# create include file for make

#echo "arch   = $2" >  config.mk   //arch=arm,放入include/config.mk

echo "cpu    = $3" >> config.mk  //cpu=arm920t,放入includde/config.mk

echo "board  = $4" >> config.mk //board=gec2440,放入include/config.mk

[ "$5" ] && [ "$5" != "null" ] && echo "vendor = $5" >> config.mk

//verdor=samaung,放入include/config.mk

[ "$6" ] && [ "$6" != "null" ] && echo "soc    = $6" >> config.mk

//soc=s3c24x0,放入include/config.mk

echo "/* automatically generated - do not edit */" >>config.h

for i in $ ; do

echo "#define config_mk_$ 1" >>config.h ;

//將"#define config_mk_$ 1加入上面產生的config.h檔案

done

echo "#include " >>config.h  檔案包含標頭檔案"#include

echo "#include " >>config.h 檔案包含標頭檔案"#include

exit 0 3

.上面紅色部分就是改變部分。到現實中的源**看看,

大家執行完make gec2440_config之後,到源**看看。

第一就是arch、cpu、board、verdor、soc被賦值,

並加入include/config.mk檔案中,

我的config.mk檔案內容如下:

arch   = arm

cpu    = arm920t

board  = gec2440

vendor = samsung

soc    = s3c24x0

第二就是看一下鏈結檔案,我的情況如下:

進入include目錄下:

#lllrwxrwxrwx  1 root root      7 04-01 21:36 asm -> asm-arm

進入include/asm-arm目錄下:

lrwxrwxrwx 1 root root     12 04-01 21:36 arch -> arch-s3c24x0

............

lrwxrwxrwx 1 root root      9 04-01 21:36 proc -> proc-armv

第三就是在i

nclude目錄下產生新檔案:config.h.裡面包含幾個標頭檔案,我的是:

/* automatically generated - do not edit */

#include

#include

開發板 2440開發板

開發板 2440 開發板coall2440 開發板 高效能 samsung s3c2440a 處理器開發板 小區智慧型開發板 樓宇對講開發板 三星 2440 開發板 珠三角電子開發 小型終端開發板 手持裝置開發方案 編譯碼 2440 開發板 深圳 2440 開發板 單片板 硬體主機板 硬體底板 jt...

ARM開發板配置rzsz

toc 這裡說的rzsz並不是真的是rzsz庫,發現並不好用,而確實好用。rzsz 3.48.tar.gz 不好用,建議別下了 用這個這裡用的是lrzsz 0.12.20.tar.gz wget tar zxvf lrzsz 0.12.20.tar.gz至於arm hisiv300 linux gc...

如何選擇開發板和保護開發板

1.開發板分為入門學習用的和評估用的。學習用的,對於新手入門用的。首先資料得多,比如三星s3c2440,這款晶元雖然已經停產了,但是作為入門來說,非常好。也有中文資料手冊,相關資料很多。當初我買開發板以看晶元效能來買的,結果到手後,資料很少,學不進去,最後只好又買了個2440的開發板。一般而言,ti...