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.

C6678多核方案疑问

你好,

刚接触C6000系列DSP,当前应用是每个核处理类似的工作,只是应对不同的数据流(即共有N×8个控制对象)。参考“multicore programming guide”,感觉用Single Image的方式比较合适。但有如下问题:

1. 是否一定需要SYS/BIOS?还是可以沿用类似C2000系列的写法?

2. “The code must set up pointer tables for unique data sections that reside in shared L2 or DDR SDRAM”. 这里的pointer table具体指什么?有没有什么例子可以学习?

3. “The linker command file should define the device memory map using aliased addresses only”. 是不是cmd文件中只能使用别名地址,不能出现全局地址? 因为外设是多核共享的,假设由核0统一打理,数据由外设DMA到shared L2中,那该如何在cmd文件中表示呢?如果用全局地址,是否会8核重复?

谢谢

  • Hi Peijun,

    关于你的问题,

    1. 不一定需要BIOS,如果你的流程不需要多任务处理,那么就没有必要采用BIOS操作系统;

    2. 因为SL2和DDR3是多个核共享的,每个核都能访问到这些地址,所以每个核里的程序应当区分在这些共享内存里的数据地址,在采用Single Image的时候,要考虑代码能够根据不同的核访问到不同的地址,比如设置一个数组 pointer[8], 然后根据DNUM去访问不同的地址 pointer[DNUM];

    3. 这个地方会有一些问题,如果最终需要使用SPI或者EMAC等外围的Boot方式,cmd文件里还是需要采用全局地址,对于地址的访问仍在代码里通过DNUM分开。

    Regards,

    Allen

  • 感谢您的回复。

    再问一下。如果我对运算时间要求较高,是不是还是同样的程序分别放进8个核的L2中会比较好?或者有没有别的建议?

    谢谢
  • 这个需要实际测试对比才能知道是放到L2好还是使用L2 Cache缓存DDR就能满足,一般而言代码所占内存不会太大,Cache应该是能容纳的,数据读写才是需要重点考虑的部分。
  • 对,我主要就是担心数据读写。
    再次感谢。
x 出现错误。请重试或与管理员联系。