打印

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

[复制链接]
1194|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

粉丝