三星6410的bootloader
/* 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.
*/
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 */
在这个中,怎么得到pc值需要做这一步ldr r0, =0xff000fff。 怎么没有高人呢 我也想知道,怎么看都没头序 屏蔽掉低12位可以理解,因为当前PC和基地址肯定是不等的,比较中间的12位就能说明是否运行在RAM里面了
至于屏蔽掉最高的八位,是否是考虑到MMU的地址映射影响?
页:
[1]