天嵌 ARM开发社区

 找回密码
 注册
查看: 2677|回复: 1

uboot理解提问

[复制链接]
liuke918 发表于 2010-4-26 14:46:34 | 显示全部楼层 |阅读模式
7.cpu/arm920t/start.S中relocate标号段代码
165   adr r0, _start    /* r0 <- current position of code   */
                                                // 获取当前代码存放地址
166   ldr r1, _TEXT_BASE    /* test if we run from flash or RAM */
                                                // 获取内存存放代码地址
167   cmp     r0, r1                  /* don't reloc during debug         */
                                                // 检查是否需要加载
168   beq     stack_setup        //如果_start地址与代码段地址相同则跳转到stack_setup
169
170   ldr r2, _armboot_start                 // 获取stage2代码存放地址
171   ldr r3, _bss_start                     // 获取内存代码段起始地址
172   sub r2, r3, r2    /* r2 <- size of armboot            */  
                                                // 计算stage2代码长度
173   add r2, r0, r2    /* r2 <- source end address         */
                                                // 计算stage2代码结束地址
.global _armboot_setup
_armboot_setup:.word _start
这段代码中170行中得到的_start标号存放的地址吧,怎么会是第二段代码的存放地址?? 总之,详细说下这句怎么理解?R2得到的是什么吧?
 楼主| liuke918 发表于 2010-4-26 17:01:07 | 显示全部楼层
172行的BSS段不是未定义的变量存储段吗?怎么是内存代码段了?还是_bss_start应该是从编译器中得到的吧?但是他是根据什么得来的呢?请详细讲解下.
回复

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-6-17 05:02 , Processed in 2.031533 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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