目录
1.uboot编译完成后有一个uboot-boot.lds链接器文件

2.打开里面有一个ENYRY(_start),_start符号所在的文件就是整个程序的起始文件

3.位置在 u-boot-2022.01/arch/arm/cpu/armv8/start.S
4.异常向量表代码位置u-boot-2022.01\arch\arm\lib\vectors.S
- .globl _start
- _start:
- #if defined(CONFIG_LINUX_KERNEL_IMAGE_HEADER)
- #include
- #elif defined(CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK)
- /*
- * Various SoCs need something special and SoC-specific up front in
- * order to boot, allow them to set that in their boot0.h file and then
- * use it here.
- */
- #include
- #else
- b reset
- #endif
-
- .align 3
-
- .globl _TEXT_BASE
- _TEXT_BASE:
- .quad CONFIG_SYS_TEXT_BASE
-
- /*
- * These are defined in the linker script.
- */
- .globl _end_ofs
- _end_ofs:
- .quad _end - _start
-
- .globl _bss_start_ofs
- _bss_start_ofs:
- .quad __bss_start - _start
-
- .globl _bss_end_ofs
- _bss_end_ofs:
- .quad __bss_end - _start
-
- reset:
- /* Allow the board to save important registers */
- b save_boot_params
- .globl save_boot_params_ret
- save_boot_params_ret:
进行地址无关的相对地址修复,以此保证后续在跳入c语言部分时可正常执行,一般不定义此配置则是继续往下执行boot流程。
对一些系统寄存器进行初始化