打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
关于u-boot入口的疑问
        由于开始串口没有出内容,因此对u-boot入口产生怀疑.在网上也找到一个帖子,碰到同样疑问的人:
http://www.linuxforum.net/forum/showflat.php?Cat=&Board=embedded&Number=563322&page=0&view=collapsed&sb=5&o=0&fpart=
"链接得到的起始地址为什么是TEXT_BASE,而不是0呢,所以现在只能够下载到ram中运行,但是无法烧写道flash中跑,这是怎么回事呢?u-boot中应该是start.S中的这段代码在flash中运行吧,后面就把自身拷贝到ram中TEXT_BASE地址处,为什么在链接文件中指定的_start的起始地址为0x00000000呢? "
后来我理解了:
“链接得到的起始地址为什么是TEXT_BASE,而不是0呢,”
        因为u_boot如果从flash运行的话,那么它会将自己的代码拷贝到RAM中,然后运行。u-boot开始部分代码与编译的入口没有关系,而主要的代码是在RAM中运行,因此编译的入口地址是TEXT_BASE.因此u-boot既可以flash运行,也可以ram运行。
“为什么在链接文件中指定的_start的起始地址为0x00000000呢?”
lds文件中的起始地址为0x00000000是不起作用的,由-TTEXT_BASE参数替代的。
        刚开始比较疑惑的原因是对:
126 relocate: /* relocate U-Boot to RAM */
127 adr r0, _start /* r0 <- current position of code */
adr这条指令没有理解正确,因为把它想成mv r0,_start了,实际上adr这里的_start是相对的,如果从flash运行的话,r0就是0, 如果从ram运行的话,r0就是C100000 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
u-boot详解
在STM32中SRAM_调试成功方法成功
S3C2440从NAND Flash启动和NOR FLASH启动的问题
norflash启动和nandflash启动
scf
uboot初始化
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服