程序的入口是在 _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
找到了程序入口位置, 其他问题都很容易分析了