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.
各位工程师好,我测试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;
}
}