This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

boot后mcbsp无法收到发送完成标识



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;

    }

        ......

}

    还望大神解释...谢谢