uboot启动流程概述_2017.09版uboot启动过程分析

本文详细介绍了2017.09版本U-Boot的启动过程,从_start入口开始,包括board_init_f的执行、代码重定位以及board_init_r的板级初始化。在board_init_r中,最终进入命令行,实现对命令的接收与执行。
摘要由CSDN通过智能技术生成

2017.9版本uboot启动至命令行几个重要函数为:_start,_main,board_init_f,relocate_code,board_init_r。

?

一 、程序的入口:_start

对于任何程序,入口函数是在链接时决定的,uboot的入口是由链接脚本决定的。uboot下armv7链接脚本默认目录为u-boot-2017.09\arch\arm\cpu\u-boot.lds。

由链接文件u-boot.lds的ENTRY(_start)可知,程序的入口在_start。

OUTPUT_ARCH(arm)

ENTRY(_start)

SECTIONS

{

......

. = 0x00000000;

. = ALIGN(4);

.text :

{

*(.__image_copy_start)

*(.vectors)

CPUDIR/start.o (.text*)

*(.text*)

}

?

在u-boot-2017.09版本中,入口_start在u-boot-2017.09\arch\arm\lib\vectors.S中,

_start:

#ifdef CONFIG_SYS_DV_NOR_BOOT_CFG

.wordCONFIG_SYS_DV_NOR_BOOT_CFG

#endif

breset

ldrpc, _undefined_instruction

ldrpc, _software_interrupt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值