侵权投诉
订阅
纠错
加入自媒体

一款比较常用的bootloader:uboot代码介绍

2021-01-25 17:16
一口Linux
关注

核心内容解释:

27 OUTPUT_ARCH(arm)       :    该镜像运行在arm架构的硬件上
28 ENTRY(_start)          :    程序的入口是 _start
29 SECTIONS
30 {
31  . = 0x00000000;      :   程序的链接地址,不是运行地址【uboot一定是位置无关码】
34     .text :
35     {
36         __image_copy_start = .;    : 宏对应整个程序编译好后首地址,自搬移代码的初始位置
37         CPUDIR/start.o (.text*)    : 第一个目标文件CPUDIR/start.o中的代码段
38         *(.text*)                  : 剩下的目标文件的代码段
39     }
60     __image_copy_end = .;          : 自搬移代码的结束为止

BSS全局未初始化变量、全局初始化为0的变量所在的段:

84     .bss __rel_dyn_start (OVERLAY) : {
85         __bss_start = .;
88         __bss_end__ = .;
89     }
2. uboot启动代码流程概要

代码只分析到uboot命令行,函数main_loop()位置。

3. 启动代码详细分析

_start入口位于以下文件:

u-boot-2013.01/arch/arm/cpu/armv7/start.S
第一阶段:

第二阶段

第二阶段代码从_main开始:

以上代码详细解释,请结合B站视频同步学习。

<上一页  1  2  3  4  下一页>  
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

    电子工程 猎头职位 更多
    扫码关注公众号
    OFweek电子工程网
    获取更多精彩内容
    文章纠错
    x
    *文字标题:
    *纠错内容:
    联系邮箱:
    *验 证 码:

    粤公网安备 44030502002758号