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多核开发 不同核使用不同.out 多核读写存储

工程师们好,本人现在6678平台编写 模拟雷达信号处理程序,

目前的安排是 6678的0核做DMA数据搬移,通过SRIO从FPGA接收数据。然后1核做信号处理程序。

0核的程序和缓存只在LL2。

1核的部分数据在SL2。

为了区分开两个核的SL2,我在各自的CMD中故意错开了定义SL2,0核只定义前2M,1核2只定义后2M。

现在的进度是,硬件仿真,两个核各自独立加载程序和所需数据工作都可以进行。

但是一起工作,两个核一起加载.out,即0核进入main,等待SRIO中断,1核进入main,等待读写DDR。

一旦0核resume,开始向DDR搬运数据,再将1核resume,开始读取0核搬运好的数据,1核直接挂起无法继续。

而0核暂停,停止搬运,再启动1核,1核就可以完成程序。

所以,我觉得应该是多核同时读写DDR的优先级存在冲突,需要在两核的共同开放的另一片存储区添加标志位互相通信。

那么多核加载不同的.out这样的工程需要注意什么,是缓存一致性,要使能L1D和L1P吗,还是其他的问题,如IPC组件,BIOS组件等?

还有,TI能否提供类似的例程,就像0核搬运数据,1核做些简单数据计算这样的工程。

  • C6678的MSMC负责处理系统中所有的master(包括8个核,以及SMS和SES接口)对MSMC SRAM和DDR3的访问请求。DDR3只有一个slave端口,如果多个master在同一个clock访问它,也由MSMC内的仲裁逻辑按优先级处理。

    你可以试试配置starvation bound register,仲裁说明可以参考下面的MSMC文档。
    2.3.3 MSMC Bandwidth Management
    http://www.ti.com/lit/ug/sprugw7a/sprugw7a.pdf