天嵌 ARM开发社区

 找回密码
 注册
查看: 3132|回复: 2

关于u-boot代码copy到ram中的疑问

[复制链接]
flfxt 发表于 2009-11-9 17:12:04 | 显示全部楼层 |阅读模式
小弟刚接触u-boot,看了start.s的代码,有几个问题:

1、不明白程序从Flash中copy到ram中以后是如何跳到ram中执行的
---------------------------------------------------------------------
        ldr        pc, _start_armboot

_start_armboot:        .word start_armboot
---------------------------------------------------------------------
是不是上面的代码就是跳到ram中的呀,那个start_armboot不知道是在哪里定义的,找了一下,没找到。

2、程序执行到这里(代码copy到ram中以后),它的工作也就快完事了吧,如果有linux操作系统的话下一步就是引导Linux内核之类的了吧(刚学习,不知道说的对不对),那还干嘛要把u-boot搬到ram中去呢。
wangdawei_80 发表于 2009-11-12 14:28:54 | 显示全部楼层
1.start_armboot在lib_arm/boot.c中定义的。这句ldr pc,_start_armboot就是跳到ram中的呀,因为start_armboot就在ram中;
2.start_armboot是u-boot的第二个阶段,在该阶段还要执行必要的初始化过程,比如:cpu、中断以及板级硬件初始化。初始化完成后构建Linux内核执行环境,之后加载Linux内核。
回复

使用道具 举报

jzy23 发表于 2009-11-18 14:19:51 | 显示全部楼层
本帖最后由 jzy23 于 2009-11-18 14:21 编辑

补充:
对于1:
---------------------------------------------------------------------
        ldr        pc, _start_armboot

_start_armboot:        .word start_armboot
---------------------------------------------------------------------

      ldr        pc, _start_armboot   
这句将_start_armboot(一个地址)赋给pc,然后pc便跳转到SDRAM。
因为
_start_armboot:        .word start_armboot
在连接后,start_armboot的地址为0x33f80b70,
这个地址是处于SDRAM。
于是便实现了跳转到SDRAM中执行。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2025-6-17 01:06 , Processed in 2.042389 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表