????make?grep "CONFIG_DM9000" -nr .
??????Makefile????obj-$(CONFIG_DM9000) += dm9000.o????auto.conf?ж??壩
??????config???????CONFIG_DM9000=y
??????.c???????if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
????make??????
??????include/config/auto.conf????CONFIG_DM9000=y?????.config??
??????include/linux/autoconf.h????#define CONFIG_DM9000 1??????????????????????.config??
???????auto.conf???????Makefile????
????——————/
????Documentation/kbuild/makefiles.txt???????????????
????obj-y += abc.o
????abc-objs := a.o b.o c.o
????——————/
???????make uImage??????????Makefile????uImage?????arch/arm/Makefile???У???????????

 

root@lyl:/home/linux-2.6.22.6# vi Makefile
include $(srctree)/arch/$(ARCH)/Makefile
-include include/config/auto.conf
——————/
uImage: vmlinux
vmlinux: $(vmlinux-lds) $(vmlinux-init) $(vmlinux-main) $(kallsyms.o) FORCE //????Makefile
vmlinux-init := $(head-y) $(init-y)
vmlinux-main := $(core-y) $(libs-y) $(drivers-y) $(net-y)
vmlinux-all := $(vmlinux-init) $(vmlinux-main)
vmlinux-lds := arch/$(ARCH)/kernel/vmlinux.lds
head-y := arch/arm/kernel/head$(MMUEXT).o arch/arm/kernel/init_task.o //??????Makefile

 

????????????????????????????????????÷??????
????——————/
????root@lyl:/home/linux-2.6.22.6# rm vmlinux
????root@lyl:/home/linux-2.6.22.6# make uImage V=1
????arm-linux-ld -o vmlinux -T arch/arm/kernel/vmlinux.lds arch/arm/kernel/head.o arch/arm/kernel/init_task.o init/built-in.o ……
?????????
??????????arch/arm/kernel/vmlinux.lds????????????
?????????arch/arm/kernel/head.o

 

root@lyl:/home/linux-2.6.22.6# vi arch/arm/kernel/vmlinux.lds
SECTIONS
{
. = (0xc0000000) + 0x00008000; //??????
.text.head : {
_stext = .;
_sinittext = .;
*(.text.head) //??????????????.text.head?Σ????????????????arm-linux-ld????
}
——————/
theKernel(0??????id???????????) //u-boot
//arch/arm/kernel/head.S