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