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.

6678 SRIO DSP与FPGA通信

各位工程师好,我测试srio通信时遇到如下问题,请帮忙解答一下。

我建立了一个6678的工程,其中0核负责DSP和FPGA间srio通信。该工程在连接仿真器调试时运行正常,但是在将程序固化后发现srio发送的数据FPGA未接收到。最后找到是因为0核执行了下面用于多核启动的代码所致,当屏蔽掉代码发送核间中断的部分(*(IpcGr0+i) = (*(IpcGr0+i)) | 0x00000001;)后,srio通信正常。请问一下,这段代码为什么会对srio通信造成影响,这个问题应该怎么解决?

void MulCoreBoot_6678(unsigned int coreId)

{
    volatile unsigned int *pBootMagicAddCore0;
    volatile unsigned int *IpcGr0;
    volatile unsigned int *KICK0;
    volatile unsigned int *KICK1;
    unsigned int i;
    if(coreId == 0)
    {
        KICK0 = (volatile unsigned int*)0x02620038;
        KICK1 = (volatile unsigned int*)0x0262003c;
        *KICK0 = 0x83E70B13;
        *KICK1 = 0x95A4F1E0;
        pBootMagicAddCore0 = (volatile unsigned int*)0x1087FFFC;
        //(*pBootMagicAddCore0) = 0x1080d160;
        (*pBootMagicAddCore0)+= 0x10000000;
        for(i = 1;i < 8; i++)//write the other cores' boot magic address
        {
            *(pBootMagicAddCore0+ (0x01000000*i)/4 ) = (*pBootMagicAddCore0) + 0x01000000 * i;
        }
        IpcGr0  = (volatile unsigned int*)0x02620240;
        for(i=1; i<8; i++)
        {
            *(IpcGr0+i) = 8;
            *(IpcGr0+i) = (*(IpcGr0+i)) | 0x00000001;
        }
        *KICK0 = 0;
        *KICK1 = 0;
    }
}

x 出现错误。请重试或与管理员联系。