Chinaunix首页 | 论坛 | 博客
  • 博客访问: 417374
  • 博文数量: 71
  • 博客积分: 1525
  • 博客等级: 上尉
  • 技术积分: 605
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-05 17:28
文章分类

全部博文(71)

文章存档

2012年(21)

2011年(50)

分类: LINUX

2011-09-22 22:07:55

TEXT_BASE = 0xc3e00000

 

TEXT_BASE是代码执行的起始地址.编译产生的二进制文件必需下载到该地址,因为所有的函数,全局变量等等定位都是以这个地址为参照的.
如果uboot中是TEXT_BASE就是设的0x33F80000, 那么必需download到这个地址的ram中才能正常运行.
那么这个地址如何确定的呢? 是这样的如果你的板子上RAM地址从0x3000_0000开始的,那么你可以把bootload分配在任意的地方运行. 但是我们往往要保留一些内存空间作为备用(比如download大文件系统的时候,我们必需先保存到临时内存,可能几十兆大小的连续空间) 那么我们可以把bootloader放在起始或者末尾的地方
0x3000_0000____________________
         |
         |   保留的内存空间
.
.
.
         |
0x33f80000|____________________
         |      bootloader(128KByte
0x40000000|____________________

阅读(1275) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~