新版uboot的启动过程

程序的入口是在 _start
具uboot的入口是由链接脚本决定,
链接脚本在
/arch/arm/cpu/u-boot.lds

ENTRY(_start)
SECTIONS
{
#ifndef CONFIG_CMDLINE
	/DISCARD/ : { *(.u_boot_list_2_cmd_*) }
#endif
#if defined(CONFIG_ARMV7_SECURE_BASE) && defined(CONFIG_ARMV7_NONSEC)
	/DISCARD/ : { *(.rel._secure*) }
#endif
	. = 0x00000000;

	. = ALIGN(4);
	.text :
	{
		*(.__image_copy_start)
		*(.vectors)
		CPUDIR/start.o (.text*)
		*(.text*)
	}

可以看出首先链接的是vectors.S 真正的入口在vectors.S
随后执行cpu目录下的start.S
找到了程序入口位置, 其他问题都很容易分析了

你可能感兴趣的:(Linux)