请我我的程序为什么进不了T0中断,请教...

[复制链接]
2037|1
 楼主| hbsun2007 发表于 2009-11-15 22:10 | 显示全部楼层 |阅读模式
static void __irq T0Intseverice()
{
    rGPBDAT = 0xef;//(data<<5);   
}
  
void T0init(void)
{
    pISR_TIMER0=(U32)T0Intseverice;
    rINTMOD=0x0; //IRQ 模式
    rINTMSK=~(BIT_TIMER0); //开中断T0

    rTCFG0=0x0000FF;
    rTCFG1=0x000003;
   
    rTCON=0X09;
   
    rTCNTB0=0Xf0;
    rTCMPB0=0X0f;   
}
int Main(int argc, char **argv)
{
    int i;
    U8 key;
    U32 mpll_val=0;

  
      
      T0init();
    mpll_val = (92<<12)|(1<<4)|(1);
   
    ChangeMPllValue((mpll_val>>12)&0xff, (mpll_val>>4)&0x3f, mpll_val&3);
   
    ChangeClockDivider(key, 12);   

   
    MMU_DisableICache();
    MMU_DisableDCache();

    rGPBCON = 0x155555;
   
    rGPBDAT = 0x00;

       while(1)
       {; }
   return 0;
}


我是刚学的还请各位不吝赐教,谢谢~
 楼主| hbsun2007 发表于 2009-11-15 22:21 | 显示全部楼层
是不是因为S3C2440的内部MMU已经做死了,不具有地址重映射功能。因此CPU总是从0地址(注意这里指的是物理地址)开始执行,异常和中断发生时,也是从地址之自 0开始(一般是flash)的异常向量表开始跳转(如果具有地址重映射功能,可以将自己的异常向量表开始的地方定义为0地址,一般是SDRAM)。
因此,如果没有修改flash的异常向量表,就会出现进不去中端的情况。
无意之中找到的...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

87

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部