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

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

Shine:

请问有没有清IPCAR寄存器?

striker Qian:

没有影响,估计是多核同步没做好

赞(0)
未经允许不得转载:TI中文支持网 » 6678 SRIO DSP与FPGA通信
分享到: 更多 (0)