TI中文支持网
TI专业的中文技术问题搜集分享网站

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;}......

}

    还望大神解释…谢谢

Jane Lu:

Xu,

            几点建议:

                1      您用的是哪种boot模式? 可以查一下该boot模式下是否默认使用了哪些资源,是否与您的程序有冲突

                  2     EDMA_ISR中是否有其他变量可以检查中断有没有产生?

Xu Tsou:

回复 Jane Lu:

hi, Jane

    谢谢您的回复,我使用的是直接SPI BOOT,但是我不知该“查该boot模式下是否默认使用了哪些资源,是否与程序有冲突”,然后经过我的验证,是由进如EDMA_ISR中断服务函数的。

    可能有些问题当时描述的可能不太清楚,

http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/69574.aspx

我在这个帖子中更加详细的描述了一次,还望您能指点一二,谢谢。

赞(0)
未经允许不得转载:TI中文支持网 » boot后mcbsp无法收到发送完成标识
分享到: 更多 (0)