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.

[参考译文] CCS/TMS320C6678:无法清除多核项目 IPCAR

Guru**** 2562120 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/614907/ccs-tms320c6678-inmulticores-project-ipcar-could-not-be-cleared

器件型号:TMS320C6678

工具/软件:Code Composer Studio

大家好、TI 专家、

我遇到了一个问题、即 CCS v5.1仿真器和 EVM6678LE 板在清除 IPCAR 寄存器方面的表现不同。

我的测试项目执行以下工作、

a.core0按顺序设置 IPCGR[1]~IPCGR[7]、在 core1~core7中生成中断。

b.在中断服务中、每个内核执行一些 sin (x)计算。

c.在中断结束时,每个内核使用以下代码设置自己的 IPCAR

READ_ipcgr =*(volatile UINT32 *) iIPCGRInfo[CoreNum];
*(volatile uint32_t *) iIPCARInfo[CoreNum]= read_ipcgr;//清除相关源信息

D.core0读取 IPCAR[1]~IPCAR[7]、查找其他内核是否完成

uint8_t FinishFlagCnt;

执行{
FinishFlagCnt = 0;
uint32_t read_ipcar = 0;
对于(i = 0;i<7;i++)

read_ipcar =*(volatile uint32_t *) iIPCARInfo[(i+1)];
//printf ("*(volatile uint32_t *) iIPCARInfo[(i+1)]=%x\n"、*(volatile uint32_t *) iIPCARInfo[(i+1)]);
如果(0 = Read_ipcar)
FinishFlagCnt ++;

}while (FinishFlagCnt!= 7);

测试项目非常简单、并且在 CCS v5.5.0.00077调光器中正确运行。 但是、当它在 EVM6678LE 上运行时、接收 IPC 中断的最后3个或4个内核始终无法清除相应的 IPCAR。 因此该 core0不能跳出该 do while。

请帮我找到原因吗?e2e.ti.com/.../IPC_5F00_Demo_5F00_6678_5F00_Multicores_5F00_0801.rar

为方便您重新出现问题、随附了我的测试项目。

感谢你的答复。