天嵌 ARM开发社区

 找回密码
 注册
查看: 2499|回复: 4

uboot从norflash启动运行地址,求释惑

[复制链接]
workhard123 发表于 2013-4-1 16:49:49 | 显示全部楼层 |阅读模式
请教大家一个问题:
uboot从norflash启动
在编译时设置config.mk的TEXT_BASE = 0x33D00000,这样就指定了uboot的各个段的存储位置,即start.o
存放的位置应该是在0x33D00000,按照这样的理解,nor flash启动从0x0运行,是无法执行start.o的,不知道我的理解错在哪里?求指导
当执行到
        ldr        pc, _start_armboot

_start_armboot:        .word start_armboot
接下来的程序是在SDRAM中运行还是在norflash中运行?

希望各位给予指导!谢谢诶
zjhsucceed_329 发表于 2013-4-1 20:29:31 | 显示全部楼层
本帖最后由 zjhsucceed_329 于 2013-4-1 20:29 编辑

.globl _start
_start:        b       reset
        ldr        pc, _undefined_instruction
        ldr        pc, _software_interrupt
        ldr        pc, _prefetch_abort
        ldr        pc, _data_abort
        ldr        pc, _not_used
        ldr        pc, _irq
        ldr        pc, _fiq
第一条指令是相对跳转指令,与位置无关,跳转到
reset:
        /*
         * set the cpu to SVC32 mode
         */
        mrs        r0,cpsr
        bic        r0,r0,#0x1f
        orr        r0,r0,#0xd3
        msr        cpsr,r0
 楼主| workhard123 发表于 2013-4-1 21:00:09 | 显示全部楼层
zjhsucceed_329 发表于 2013-4-1 20:29
.globl _start
_start:        b       reset
        ldr        pc, _undefined_instruction

有启发 谢谢您
Privia 发表于 2013-4-2 18:42:19 | 显示全部楼层
UBOOT第一阶段代码是与位置无关的,随便你在哪里都能执行的。在第一阶段 有个代码重定位功能的 叫神马的忘记了 好像是relocation的吧。它会将代码拷贝指你的链接地址 就是0x33D00000 。 ldr  pc, _start_armboot 加载的是_start_armboot的链接地址,你反汇编可以看下这个链接地址是多少。希望能帮助到你
wang2582 发表于 2013-7-16 14:54:03 | 显示全部楼层
ssssssssssss
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-6-17 21:49 , Processed in 1.078125 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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