免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2156 | 回复: 5
打印 上一主题 下一主题

[BootLoader] 读uboot代码时遇到个难解的问题,求论坛的各位老师帮帮解决下 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-10-06 16:43 |只看该作者 |倒序浏览
我试了下把board/config.mk中的BASE_TEXT值改成了0x11111110,不知道为什么会出现 _start-0x10

  1. u-boot:     file format elf32-littlearm


  2. Disassembly of section .text:

  3. 11111110 <_start-0x10>:
  4.         ...

  5. 11111120 <_start>:
复制代码

论坛徽章:
0
2 [报告]
发表于 2013-10-06 16:47 |只看该作者
我看了下board 下的uboot.lds文件
  1. . = 0x00000000;

  2.         . = ALIGN(4);
  3.         .text      :
  4.         {
  5.           cpu/arm920t/start.o   (.text)
  6.           *(.text)
  7.         }
复制代码
要求是四字节对齐  这个地址也是四字节对齐啊,还是我对字节对齐理解错了?

论坛徽章:
0
3 [报告]
发表于 2013-10-06 16:56 |只看该作者
然后,我查看了uboot.bin文件
  1. 00 00 00 00
  2.        00 00 00 00
  3.        00 00 00 00
  4.        00 00 00 00
  5.        12 00 EA 14 //  11111120:       ea000012        b       11111170 <reset>
  6.        .........
复制代码
这个文件很正常,根据上面0x10空了16个字节,但是问题就出来了,后面地址计算都是根据0x11111110来算的,但实际应该是0x11111120
到这就想不明白了

论坛徽章:
0
4 [报告]
发表于 2013-10-09 17:28 |只看该作者
本帖最后由 EZWORD 于 2013-10-09 17:29 编辑

至于前面为什么多出来了16字节,情况太多了。
有的是需要在前面加入一些头之类的东西。

BASE_TEXT = _start-0x10
这个不是正好吗?因为对齐,所以_start自动变成了0x11111120

论坛徽章:
0
5 [报告]
发表于 2013-10-09 20:31 |只看该作者
回复 4# EZWORD
前面不应该有头吧,那个是bin文件,第一条应该是跳转指令啊。对齐,它是怎么对齐的,我算了下,0x11111110也是四字对齐的,还是我理解错了?


   

论坛徽章:
0
6 [报告]
发表于 2013-10-23 11:03 |只看该作者
16字节对齐。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP