U-BOOTのソートキャッシュ

U-BOOT1.1.6の
コンフィギュレーション・コマンド:100ask24x0_config作る
コンパイルコマンドを:作る
最初の設定プロセスを分析:Makefileの、検索100ask24x0_config GETを見て
unconfigの:100ask24x0_config
@ $(MKCONFIG)$(@:= _設定)ARMのARM920T 100ask24x0 NULL s3c24x0
MKCONFIGだっ検索
MKCONFIG := $(SRCTREE)/ mkconfig
mkconfig 100ask24x0 ARMのARM920T 100ask24x0 NULLのs3c24x0
開くmkconfigスクリプトファイル
mkconfig 100ask24x0 ARMのARM920T 100ask24x0 NULL s3c24x0
$ 0 $ 1 $ 2 $ 3 $ 4 $ 5 $ 6。。。。
board_nameに= 100ask24x0
エコー"$ {board_nameに}ボードの設定..."
./include CD
RM -f ASM
LN -s -s #ln ASM ASM-ASM $ 2-ARMのASMの
RMの$の-fのASM-2 /アーチ#rmのASM-ARM /アーチ-f
LN -s $ {LNPREFIX} arch- $ 6 asm- $ 2 /アーチ#lnの-S(空)アーチs3c24x0のASM-アーム/アーチ
RM -f asm- $ 2 / PROC
LN -s $ {LNPREFIX} PROC-armv asm- $ 2 / PROC #ln -S(空)PROC-armv ASMアーム/ PROC

echo "ARCH   = $2" >  config.mk #>是新建
echo "CPU    = $3" >> config.mk #>>是追加
echo "BOARD  = $4" >> config.mk
内容:
ARCH    = arm
CPU = arm920t
BOARD   = 100ask24x0
[ "$6" ] && [ "$6" != "NULL" ] && echo "SOC    = $6" >> config.mk
SOC = s3c24x0

> config.h      # Create new config file
echo "/* Automatically generated - do not edit */" >>config.h
echo "#include <configs/$1.h>" >>config.h
config.h的内容
/* Automatically generated - do not edit */
#include <configs/100ask24x0.h>

再解析のコンパイル
OBJS = CPU / \((CPU)LIBS = lib_generic /start.o /ボードlibgeneric.a LIBS + = / \)(BOARDDIR)/ libには\((ボード)II.A LIBS + = CPU / \)(CPU)/ libに$(CPU ).A

$(OBJ)U-ブート:依存バージョン$(SUBDIRS)$(OBJS)$(LIBS)\((LDSCRIPT)UNDEF_SYM = `\)(objdumpの)-x $(LIBS)| sedの-n -eさん/ 。*(__ u_boot_cmd _ *。)/ - U \ / P '1 |ソート| uniq`。CDの$(LNDIR)&& $(LD)$(LDFLAGS)$$ UNDEF_SYM $(__ OBJS)--start-グループ$(__ LIBS)--end-グループ$(PLATFORM_LIBS)-Map u-boot.map -o U-ブート

* grepの"LDFLAGS"とすると、次の文を見つける-NR
config.mk:189:LDFLAGS + = - Bstatic -T $(LDSCRIPT)を-Ttext $(TEXT_BASE)$(PLATFORM_LDFLAGS)
TEXT_BASE:
ボード/ 100ask24x0 / config.mk

直接実行コマンド情報作成を参照してください
= UNDEF_SYMをarm-linux-objdump -x lib_generic/libgeneric.a board/100ask24x0/lib100ask24x0.a cpu/arm920t/libarm920t.a cpu/arm920t/s3c24x0/libs3c24x0.a lib_arm/libarm.a fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a net/libnet.a disk/libdisk.a rtc/librtc.a dtt/libdtt.a drivers/libdrivers.a drivers/nand/libnand.a drivers/nand_legacy/libnand_legacy.a drivers/usb/libusb.a drivers/sk98lin/libsk98lin.a common/libcommon.a |sed -n -e 's/.*\(__u_boot_cmd_.*\)/-u\1/p'|sort|uniq
CD /work/system/u-boot-1.1.6 &&
ARM-Linuxの-LD -Bstatic -T /work/system/u-boot-1.1.6/board/100ask24x0/u -boot.lds -Ttext 0x33F80000 $ UNDEF_SYM CPU / ARM920T / start.o --start-グループlib_generic / libgeneric.aボード/ 100ask24x0 / CPU / ARM920T / libarm920t.aのCPU lib100ask24x0.a / ARM920T / s3c24x0 / libs3c24x0.a lib_arm /libarm.a FS / CRAMFS / libcramfs.a FS /脂肪/ libfat.a FS / FDOS / libfdos.a FS / JFFS2 / libjffs2.a FS / reiserfsの/ libreiserfs.a FS / EXT2 / libext2fs.aネット/のlibnet。 ディスク/ RTC libdisk.a / librtc.a DTT / libdtt.aドライバー/ドライバー/ NAND libdrivers.a /ドライバ/ nand_legacy libnand.a /ドライバー/ USB libnand_legacy.a /ドライバlibusb.a / sk98lin / libsk98lin.a共通/libcommon.a --end-グループ-Map u-boot.map -o U -boot
順序を表示するためにLDSファイルのリンクを見て、住所など

おすすめ

転載: www.cnblogs.com/princepeng/p/11488774.html