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

c6678 多核单镜像问题

各位专家:

请教一个关于多核单镜像,内存分配的问题。对于这样的工程,程序段,数据段,堆栈段一般放置在哪里合适?(L2,  MSMC, DDR), 还有没有其它特殊的要求?

Nancy Wang:

请参考多核编程手册single image部分。
www.ti.com/…/sprab27b.pdf
以下帖子也可参考看一下。
e2echina.ti.com/…/168267

user6307690:

回复 Nancy Wang:

您好!
在多核编程手册中 single image部分提到下面这三条内容
• The code must set up pointer tables for unique data sections that reside in shared
L2 or DDR SDRAM.
• The code must add DNUM to any data buffer addresses when programming
DMA channels.
• The linker command file should define the device memory map using aliased
addresses only.

有几个问题:
1。 第1条内容是如果只有一个数据段共享在L2\DDR 时必须建立 这个指针表。如果这个数据段在msmcsram呢?
2。aliasedaddresses 指的是什么地址,是全局地址吗?
3。 对于多核单镜像的理解问题,是不是对于多核上加载相同的镜像,执行同一个程序,这种情况就是多核 单镜像?

Nancy Wang:

回复 user6307690:

1、是shared L2。在共享内存中都需这样操作。
2、指local address
3、是的

user6307690:

回复 Nancy Wang:

对于在共享内存中建立指针表(第一条)是否有相关的例程呢?

Nancy Wang:

回复 user6307690:

其实目的就是区分不同核所要访问的共享内存中的数据的地址
正如前面帖子中提到可以建立一个数组dp= bufBase+ BUF_SIZE*DNUM
或者通过#paragma把不同核用的数据放在不同的段里

user6307690:

回复 Nancy Wang:

如果在DDR上,是不是这样操作:
先定义DDR3_0, DDR3_1的起始地址和长度

再定义
program.sectMap[".core0_ddr"] = "DDR3_0";
program.sectMap[".core1_ddr"] = "DDR3_1";

对不同核用的数据使用
#paragma DATA_SECTION(a, ".core0_ddr");
float a;

#paragma DATA_SECTION(b, ".core1_ddr");
float b;

Nancy Wang:

回复 user6307690:

可以的。

赞(0)
未经允许不得转载:TI中文支持网 » c6678 多核单镜像问题
分享到: 更多 (0)