Advertisement

BootLoader 分析 启动流程(以UBoot 为例)

阅读量:

目录

    • 程序启动点:_start
      • 环境配置:_main
      • 设备初始化:board_init_r
      • 内核加载:loader
      • 模拟执行:qemu

代码入口:_start

通过分析链接脚本的内容可以发现,uboot的起始执行地址被定义为_start

复制代码
    # u-boot.lds
    
    OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
    OUTPUT_ARCH(arm)
    ENTRY(_start)
    
    
      
      
      
      
      
    
复制代码
    // arch/arm/lib/vectors.S
    
    	.section ".vectors", "ax"
    _start:
    #ifdef CONFIG_SYS_DV_NOR_BOOT_CFG
    	.word	CONFIG_SYS_DV_NOR_BOOT_CFG
    #endif
    	ARM_VECTORS
    #endif /* !defined(CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK

全部评论 (0)

还没有任何评论哟~