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

C6678 如何共享代码段

您好:

C6678 上电后,如何实现8个核共享同一个cmd文件?也就是说.text段放在共享存储器中,8个核运行时都去共享存储器取指令,但是如果这样操作的时候,8个核取指令的同时会产生一个地址冲突!

谢谢!

Anna:

多核编程的UserGuide:www.ti.com/…/sprab27a.pdf

简单地,也可以:

main()

{

coreID = GetCoreID();//DSP的DNUM寄存器

switch(coreID)

{

case core0:

task_core0(…);

break;

case core1:

task_core1(…);

break;

default:

break;

}

}

一个image同时运行在不同核上。

si cheng:

回复 Anna:

Anna,您好:

我想将8个核共享的段,单独拿出来,放到共享存储器中,这样的话,每个核的片内L2可以节省.text段大小的空间,比如:

8个核的cmd文件中都有如下形式部分.这样8个核只需用这一段代码段,就不需要每个核都拥有这样一个相同的代码段.8个核取指令的时候都去MSMC取指令,不知程序能否这样设计?

MEMORY

{

MSMC:o = 0c000000h l = 003fffffh

}

SECTIONS

{

.text > MSMC

}

Anna:

回复 si cheng:

当然可以。8个核可以使用同一个cmd文件,也可以使用不同的cmd文件。如果使用RTSC,可以通过修改Platform及*.cfg文件完成内存空间映射。

针对共享内存控制的详细使用,请参考MSMC的UserGuide

www.ti.com/…/sprugw7a.pdf

si cheng:

回复 Anna:

您好:

如果8个核同一时刻去共享存储器的同一地址取相同的指令,应该会产生地址冲突,如何解决这个冲突?

Anna:

回复 si cheng:

方法一:使用硬件信号量。

硬件信号量的User Guide:www.ti.com/…/sprugs3.pdf

Yu Liu:

回复 King Wang:

还有对于每个核的预取机制可以大大减少共享内存访问冲突。

conghu zhu:

回复 Anna:

Anna,您好!

您上面的过程应该是8个核同时运行某个代码段,但是它们是各自分开运行的,没有进行数据通讯。我想利用8个核共同来完成某段程序,而且它们的数据是共享的,应该怎么办?

Andy Yin:

回复 conghu zhu:

您好,

先确认一下你的问题:8各核运行相同的代码,并且同时处理相同的数据?是这样么?

赞(0)
未经允许不得转载:TI中文支持网 » C6678 如何共享代码段
分享到: 更多 (0)