Chinaunix

标题: uboot问题, [打印本页]

作者: freshere    时间: 2008-07-23 13:00
标题: uboot问题,
这是一段mips处理器的uboot 代码,不明白 RVECENT(reset,0) 和RVECENT(reset,1)有什么区别,后面连续的
RVECENT(romReserved,3)是什么意思,需要跳转那么多次吗?,希望详细解释一下,感激不尽



#define RVECENT(f,n) \
   b f; nop
#define XVECENT(f,bev) \
   b f     ;           \
   li k0,bev
。。。

_start:
        RVECENT(reset,0)        /* U-boot entry point */
        RVECENT(reset,1)        /* software reboot */
#if defined(CONFIG_INCA_IP)   
        .word INFINEON_EBU_BOOTCFG  
        .word 0x00000000           /* phase of the flash                    */
#elif defined(CONFIG_PURPLE)       /*on a purple Board */
        .word INFINEON_EBU_BOOTCFG /* EBU init code, fetched during booting  */
        .word INFINEON_EBU_BOOTCFG /* EBU init code, fetched during booting */
#else

/*Assuming each jump vector is x words long, it could be used to
generate an address to locate the code in the case where you didn't
want to explicitly fill each jump vector.*/
        RVECENT(romReserved,2)
#endif
        RVECENT(romReserved,3)
        RVECENT(romReserved,4)
        RVECENT(romReserved,5)
        RVECENT(romReserved,6)
。。。
     XVECENT(romExcHandle,0x200)     /* bfc00200: R4000 tlbmiss vector */

reset:
。。。

romReserved:
。。。

。。。
作者: sep    时间: 2008-07-23 13:14
1、代码里不是注释了吗?一个是uboot入口,是硬启动;一个是软启动
_start:
        RVECENT(reset,0)        /* U-boot entry point */
        RVECENT(reset,1)        /* software reboot */
拜托自己稍微动一下脑,分析一下吧

2、后面那些RVECENT(romReserved,3)是处理器interrupt vectors。当发生预取指令错误、指令不合法、irq中断、软件中断时,会进入这些这些interrupt handler中处理。话虽如此,但一般不用全都实现它们。
作者: freshere    时间: 2008-07-23 13:29
标题: 回复 #2 sep 的帖子
谢谢你,硬启动和软启动都是跳到reset处,有什么差别?
作者: sep    时间: 2008-07-23 13:38
原帖由 freshere 于 2008-7-23 13:29 发表
谢谢你,硬启动和软启动都是跳到reset处,有什么差别?

这个要看cpu体系的,我不懂mips
如果是arm的话,软启动好像是跳到(reset+4)处?记得不是很清楚了
作者: freshere    时间: 2008-07-23 13:41
标题: 回复 #4 sep 的帖子
谢谢你这么耐心的回答,基础是太差了 ,:)
作者: gigabyte    时间: 2008-07-23 17:37
我也看不懂…………郁闷
作者: sep    时间: 2008-07-23 17:42
原帖由 gigabyte 于 2008-7-23 17:37 发表
我也看不懂…………郁闷

事实上,我具体也不懂
不过因为懂arm,依此类推而已
作者: gigabyte    时间: 2008-07-23 17:44
原帖由 sep 于 2008-7-23 17:42 发表

事实上,我具体也不懂
不过因为懂arm,依此类推而已



还是要好好看书,向你学习




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2