我看了 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/