bigseafish 发表于 2015-3-22 23:00:48

关于linux判断当前是否在ram中的疑问

大家好,问大家个问题。我先使用的是TQ210,目前在看UBOOT。有个疑问:

        /* when we already run in ram, we don't need to relocate U-Boot.
       * and actually, memory controller must be configured before U-Boot
       * is running in ram.
       *///用来区分是否已经运行在RAM中
        ldr        r0, =0xff000fff
        bic        r1, pc, r0                /* r0 <- current base addr of code */
        ldr        r2, _TEXT_BASE                /* r1 <- original base addr in ram *///0xC3E00000
        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   *///code is copyed

但是这个TEXT_BASE设置成0xC3E00000,而拷贝到ram中的地址是0x23E00000,那这个r2不就变成0x00e00000,而r1就是0x00e00000,这样两个数值不管有没有拷贝过代码,地址不都是一样的吗?还是我看错了?

bigseafish 发表于 2015-3-23 22:54:08

..还有没有人啊。。很疑惑。。。

bigseafish 发表于 2015-3-25 22:33:19

版主还在吗。。。。
页: [1]
查看完整版本: 关于linux判断当前是否在ram中的疑问