我以前用ucosii在s3c44b0上面做的程序,一直运行正常。很来又做了一个不带ucosii的支持外部中断2的程序,使用ISR,工作也正常,但将这个程序写到原
先带ucosII的程序上后,就每次开机就死机。不知道为什么。
我原先不带外部中断2的程序的初始化代码:
void targetInit(void)
{
//配置Cache
rSYSCFG = SYSCFG_8KB ; //使用8K字节的指令缓存
rNCACHBE0=((unsigned int)(0x0c000000>>12)<<16)|(0x02000000>>12);
ChangePllValue(70, 3, 1 ); //设置CPU频率为78M
Port_Init(); //初始化端口
Timer_Init(); //T5为系统时钟
/*打开IRQ中断*/
rINTCON = 0x01;
rINTMSK = ~( (~rINTMSK) | BIT_GLOBAL ); //开全局中断
// Timer_Init(); //T5为系统时钟
}
后写的不带ucosii的程序的初始化代码:
void EINT_Init(void)
{
rINTMSK = 0x7ffffff; // All interrupt is masked.
pISR_EINT2 = (unsigned)Expcom_Interrupt ;
rINTCON = 0x5 ; //无向量中断模式
rINTMOD = 0x0 ; //All=IRQ mode
rPCONG = rPCONG | ( 0x30 ); //2
rPUPG = rPUPG & (~(0xf0<<4)) ; //pull up resister is enable
rEXTINT = rEXTINT & (0x3333f3ff);
rINTMSK = ~( BIT_GLOBAL | BIT_EINT2 ) ; //start INT
}
希望大家帮我一个答案。