各位专家,现在在做多核的通信,6678如果从core0到core1的通信方式?我找了些文档没找到这块。能否发一份有那块文档的手册。谢谢
Andy Yin:
你好,
核间通信有很多方式,C66x中建议使用IPC、硬件信号量、Navigator、EDMA等,可以参考相关的手册。同时可以参考多核编程手册www.ti.com/…/sprab27a.pdf
chunlei gan:
回复 Andy Yin:
你好,
想问下6678在上电时候进入core0,如何通过核间通信进入core1的?您说C66x中建议使用IPC、硬件信号量、Navigator、EDMA等,请问下相关的文档在哪个安装目录下?谢谢
Andy Yin:
回复 chunlei gan:
您好,
1. 你所说的上电时进入core0,是说bootloader么?会通过IPC出发其他核。
2. 6678相关资料连接:www.ti.com/…/tms320c6678
更多资料请到FAQ连接查找:www.deyisupport.com/…/955.aspx
chunlei gan:
回复 Andy Yin:
你好。
是的。上电进入core0,然后通过IPC进入core1么?刚刚我看了下IPC那块,主要可以通过QMSS、sRIO进行相关的核间通信。
请问下有相关的QMSS核间通信的代码么?谢谢
chunlei gan:
回复 Andy Yin:
您好,Andy Yin:
想问下从core0通过IPC_flag触发其他core的例程是在哪里?我现在已经装了mcsdk了,因为例程好多,不知道从哪里找。
谢谢。
Andy Yin:
回复 chunlei gan:
您好,
请参考www.deyisupport.com/…/4899.aspx 其中的IPC例程。
chunlei gan:
回复 Andy Yin:
您好,Andy Yin:
我在看手册看到这样一段话:
The application that is executed in CorePac0 should write the start address of the
application to be run on the secondary CorePacs to their
BOOT_MAGIC_ADDRESS; it should also write into the IPC register to trigger
an interrupt for each secondary CorePac. This brings the secondary CorePacs
from IDLE and starts executing the stored application from the start address
specified in their respective BOOT_MAGIC ADDRESS.
其中it should also write into the IPC register,把在secondary CorePacs 中运行的起始地址也写到IPC register里面。
在你给的 www.deyisupport.com/…/4899.aspx 连接地址里面的IPC_example_on_6678_CCSv503代码中如下:
void IPC_ISR()
{
volatile uint32_t read_ipcgr;
uint32_t CoreNum;
uint32_t iPrevCore;
CoreNum = CSL_chipReadReg (CSL_CHIP_DNUM);;
iPrevCore = (CoreNum – 1)%8;
read_ipcgr = *(volatile Uint32 *) iIPCGRInfo[CoreNum];
*(volatile uint32_t *) iIPCARInfo[CoreNum] = read_ipcgr; //clear the related source info
…
read_ipcgr = *(volatile Uint32 *) iIPCGRInfo[CoreNum]; 就是IPC register么?请问有这块的手册么?
我想详细掌握下IPC这块。
PS:在源代码中, CoreNum = CSL_chipReadReg (CSL_CHIP_DNUM);;多一个分号