[juliantec_list] 大家好,我是新来的。uboot 有个问题请教

  • From: 第三人 <th3rd_person@xxxxxxx>
  • To: run-linux-on-arm@xxxxxxxxxxxxxx
  • Date: Fri, 4 Mar 2011 10:44:33 +0800 (CST)

我看了 bebread2 大大写的文章: http://bebread2.juliantec.info/julblog//post/5/15 ;
还不错,现在uboot 如何编译配置是已经懂了,但是我在看 start.S 代码的时候碰到个不明白的地方。

就是在执行完 cpu_init_crit 汇编子过程返回的时候,出现了一个寄存器 ip 。 
那是什么积存器? 一般我们理解所谓 ip 是指指令指针,也就是程序计数器。但是在同一段代码中,
又出现了pc,这就是程序计数器,那岂不是和 ip 相混淆了?

    255         /*
    256          * before relocating, we have to setup RAM timing
    257          * because memory timing is board-dependend, you will
    258          * find a lowlevel_init.S in your board directory.
    259          */
    260         mov     ip, lr
    261 
    262         bl      lowlevel_init
    263 
    264         mov     lr, ip
    265         mov     pc, lr
    266 #endif /* CONFIG_SKIP_LOWLEVEL_INIT */

这段代码,我看出来了是在调用 lowlevel_init 之前,将 lr 临时保存到 ip 中,但 ip 是什么积存器呢?
ARM 架构中好象没有这样一个寄存器,莫非是一个通用寄存器?但又是哪一个呢?请大家说说。



Learning, Just As Your Favourite Thing!

Maillist, See http://www.juliantec.info/mlist/mail-lists.html
JulBlog, See http://www.juliantec.info/julblog/summary.php
JulWiki, See http://www.juliantec.info/wiki/


Other related posts: