主题 : _TEXT_PHY_BASE与_TEXT_BASE 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 57215
精华: 0
发帖: 6
金钱: 30 两
威望: 6 点
贡献值: 0 点
综合积分: 12 分
注册时间: 2011-10-20
最后登录: 2011-11-21
楼主  发表于: 2011-11-04 10:13

 _TEXT_PHY_BASE与_TEXT_BASE

_TEXT_PHY_BASE与_TEXT_BASE各代表什么意思?

ldr    r0, =0xff000fff
    bic    r1, pc, r0        /* r0 <- current base addr of code */
    ldr    r2, _TEXT_BASE        /* r1 <- original base addr in ram */
    bic    r2, r2, r0        /* r0 <- current base addr of code */
    cmp     r1, r2                  /* compare r0, r1                  */
    beq     after_copy        /* r0 == r1 then skip flash copy   */
上述代码中,为何将ldr    r0, =0xff000fff,0xff000fff如何计算出来的?
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
贡献值: 71 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2011-11-04 11:30
_TEXT_BASE是用来保存u-boot认为的运行时候在SDRAM中的代码地址的地址,是一个给CPU的虚拟地址。而_TEXT_PHY_BASE是这个地址对应的物理地址。0xff000fff是一个bit mask, 用来清掉地址中不需要关心的bit
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 57215
精华: 0
发帖: 6
金钱: 30 两
威望: 6 点
贡献值: 0 点
综合积分: 12 分
注册时间: 2011-10-20
最后登录: 2011-11-21
2楼  发表于: 2011-11-04 14:21
谢谢