[IMX6Q]TEXT_BASE和_start的区别


u-boot版本: v2009.08


看到很多文章都把两者描述为u-boot的入口地址,概念有点模糊。

其实可以这么理解:

_start是可以动态变化,而TEXT_BASE是链接时就确定的地址。

_start是实际运行的地址,而TEXT_BASE是要copy到sdram中运行的地址, 当然也是最终u-boot实际运行的地址。

u-boot的start.S中在启动第一阶段会比较这两个值是否相等,不相等则会将

自身copy到sdram中。


假设_start出是第一条执行的指令,并且TEXT_BASE=0x27800000,

分两种情况说明:

1. 当u-boot被download到nor flash或被copy到内部sram时,假设被copy到的地址是0x907000,

那么此时_start的地址是0x907000,此时就需要将自身copy到TEXT_BASE地方。

2. 当u-boot本身就被download sdram的TEXT_BASE定义的地址出,那么此时_start本身的地址

就是0x27800000了,所以和TEXT_BASE比较的结果相等而不用作自身代码搬移的工作了。


refer to:

http://blog.csdn.net/czxyhll/article/details/7859021

http://home.eeworld.com.cn/my/space-uid-116357-blogid-119284.html




评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值