dsp:C6657
问题描述:
由FPGA发来图像数据,程序处理后通过McBSP发送给其他DSP。
程序在线调试的时候一切正常,但是boot后程序能正常启动,但是运行到“while(!(SendFlag == 1));”这一句时,
if(!loseFrame)
{
/* McBSP */
SET_BIT(McBSP_SPCR(McBSP_TO_DSP2), GRST);
SET_BIT(McBSP_SPCR(McBSP_TO_DSP2), FRST);
SET_BIT(McBSP_SPCR(McBSP_TO_DSP2), XRST);
while(!(SendFlag == 1));
SendFlag = 0;
RESET_BIT(McBSP_SPCR(McBSP_TO_DSP2), XRST);
/* McBSP */
}
无法跳出收到发送成功标志循环(这个在线跑是没有问题的。。),SendFlag置位函数如下所示:
void EDMA_isr()
{
......
if(GET_BIT(IPRH,McBSPr_EDMA_Ch[McBSP_TO_DSP2]-32)) //接收DSP2的处理结果
{
REG_WRITE(ICRH,1<<4);
RecFlag = 1;
}
if(GET_BIT(IPRH,McBSPx_EDMA_Ch[McBSP_TO_DSP2]-32)) //发送给DSP2的处理结果
{
REG_WRITE(ICRH,1<<5);
SendFlag = 1;
}
......
}
还望大神解释...谢谢