隨便找個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...