UBOOT的链接地址和加载地址问题

附米粒 发布于 2016/10/04 21:57
阅读 308
收藏 0

我想请教下关于uboot的问题,在学习uboot,初学者学的有点痛苦!

    不太理解在/board/samsung/smdkc110/config.mk文件里面的TEXT_BASE = 40000000地址,其实就是不太理解链接地址和加载地址,目前我所知的是链接地址等于运行地址,加载地址是内存SDRAM中存放uboot的地址,我在一些博客看到说:

    是把代码复制到从_TEXT_BASE地址开始的SDRAM中,然后跳到SDRAM中去运行,
    ldrpc, _start_armboot
    ldr伪指令中目的寄存器如果是pc,则ldr是与位置相关的指令,在u-boot.map文件可以看出 _start_armboot=0xXXXX, 即pc=0xXXXXX。这样uboot就跳到SDRAM上去运行

我做实验是想修改TEXT_BASE的值,然后烧录到nandflash中去,然后运行,只能看到OK!然后卡死了,所以我想只修改链接地址TEXT_BASE是不行的,我想问我是不是还要修改加载地址,在哪里修改?我其实还是不太明白加载地址和链接地址!uboot搬移到SDRAM 中的时候是不是链接地址和加载地址要一致才能正确运行?有些博客说不用相同也能运行!

感觉学这部分有些混乱,第一次接触工程性代码!希望各位前辈能教教,谢谢!感激不敬!!

加载中
返回顶部
顶部