|  | 
 
 楼主|
发表于 2005-7-10 21:34:14
|
显示全部楼层 
| 顺便再问一个困扰我多时的问题。 
 编写了一个Timer0的中断测试程序,可是程序根本就不进行中断处理,实在觉得很纳闷。INTCON,INTMOD都设置了,定时器对应的中断也打开了,可就是进不了中断,郁闷!
 
 另外,我看44b0测试代码里有以下一段和中断相关的代码,没看明白
 
 void Isr_Init(void)
 {
 U32 i;
 
 pISR_UNDEF=(unsigned)HaltUndef;
 pISR_SWI  =(unsigned)HaltSwi;
 pISR_PABORT=(unsigned)HaltPabort;
 pISR_DABORT=(unsigned)HaltDabort;
 
 for(i=_RAM_STARTADDRESS;i<(_RAM_STARTADDRESS+0x20);i+=4)
 {
 *((volatile unsigned *)i)=0xEA000000+0x1FFE;//这一段一直没弄明白!!!
 }
 
 //rINTCON=0x1;      // Vectored Int. IRQ enable,FIQ disable
 rINTCON=0x5;      // Non-vectored,IRQ enable,FIQ disable
 
 rINTMOD=0x0;      // All=IRQ mode
 rINTMSK|=BIT_GLOBAL|BIT_EINT3;      // All interrupt is masked.
 }
 
 在option.h文件中,将_RAM_STARTADDRESS定义为0x0c000000,不明白为什么要将0x0c000000`0x0c000020之间的字单元赋值为0xEA000000+0x1FFE,有什么含义呢?是不是将七种异常中断搬到ram空间?
 
 李老师,多有打扰,还请见谅,有空的话就解答一下喽.谢谢!
 | 
 |