|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
问一个困扰我多时的问题。
编写了一个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空间?
谢谢! |
|