|
再请教xiaopi224一个问题
在下面代码中发现产生INTSRC_CAM中断后若BIT_SUB_CAM_P和BIT_SUB_CAM_C都没触发 那就执行 “//有疑问的代码”标记的代码 即屏蔽掉了Camera所有中断并返回了SYSINTR_NOP 这样 相应的IST得不到执行也就不会调用InterruptDone来打开屏蔽的中断那 以后不是都不会产生INTSRC_CAM中断了??????????
else if(IntPendVal == INTSRC_CAM)
{
// RETAILMSG(1,(TEXT("INT:SYSINTR_CAM INT:0x%x,0x%x\r\n"),s2440INT->rSRCPND,s2440INT->rSUBSRCPND));
if( s2440INT->rSUBSRCPND & (0x1<<11) )
{
s2440INT->rINTSUBMSK |= (0x1<<11);
s2440INT->rINTMSK |= BIT_CAM;
s2440INT->rSUBSRCPND = (0x1<<11);
s2440INT->rSRCPND = BIT_CAM;
if (s2440INT->rINTPND & BIT_CAM) s2440INT->rINTPND = BIT_CAM;
return SYSINTR_CAM;
}
else if (s2440INT->rSUBSRCPND & BIT_SUB_CAM_P)
{
s2440INT->rINTSUBMSK |= (0x2<<11);
s2440INT->rINTMSK |= BIT_CAM;
s2440INT->rSUBSRCPND = (0x2<<11);
s2440INT->rSRCPND = BIT_CAM;
if (s2440INT->rINTPND & BIT_CAM) s2440INT->rINTPND = BIT_CAM;
return SYSINTR_CAM;
}
//有疑问的代码
s2440INT->rINTSUBMSK |= (BIT_SUB_CAM_C | BIT_SUB_CAM_P);
s2440INT->rINTMSK |= BIT_CAM;
s2440INT->rSUBSRCPND = (BIT_SUB_CAM_C | BIT_SUB_CAM_P);
s2440INT->rSRCPND = BIT_CAM;
if (s2440INT->rINTPND & BIT_CAM)
{
s2440INT->rINTPND = BIT_CAM;
}
return SYSINTR_NOP;
//有疑问的代码
}
|
|