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

c6678启动问题

你好:

最近接触C6678多核DSP.有个问题一直没有搞清楚,如果要让多个核心运行一份代码,应该怎么配置.是否必须将代码多次下载?如果要所有的核心都运行Main函数又该怎么设置呢?

请帮忙回答一下,谢谢?

Hank Zhao:

把out文件下载到多个核里边,然后同时运行多个核。

Jackay Chang:

回复 Hank Zhao:

你好

我的理解是这样的,既然多个核心执行相同的代码,仅仅使用不同的数据,那么代码和数据使用全局模式,那么可以将代码和数据打包为一个镜像,然后只下载一份到内存中,Core0启动后发送IPC到其他核心启动其他核心。所有的核心都可以执行Main函数。因为如果是下载多次,那么这就不是通用的多核编程模型了。我的目的是只编写一份代码,在代码中区分不同的核心然后使用不同的数据,但下载只下载一次。6678有没有实现这种方式的机制呢,或者说相关的IDE支持这种设置?

谢谢

Hank Zhao:

回复 Jackay Chang:

多个核可以下载不同的out文件,执行不同的main函数。你说的这种实现方法,CCS不支持。

Jackay Chang:

回复 Hank Zhao:

你好

意思就是说尽管各个核心可以执行相同的代码,但也必须要为每个核心下载一次?而每个核心运行时使用了不同的地址?

如果有全局的数据,那么这些全局的数据在下载到每个核心后,实际是存在多分还是只有一份呢?有没有机制能够将数据配置为每个核心都可以访问的?

相当于这样:

1.各个核心有自己的代码拷贝,在函数内部的数据不关心,只在初始化时才初始化

2.各个核心可以拥有自己的私有数据。

3.有些数据是所有核心都可以访问的。

如果是一份镜像下载多次,那么会导致一些数据存在多个副本。尽管必须多次下载,能否这样配置:全局的数据只下载到一个指定的位置,代码段可以放在一个指定的位置,或者每个核心可以将代码段下载多次。然后每个核心从相同的地方取数据或者取指令。

非常感谢您的解答~

Hank Zhao:

回复 Jackay Chang:

"要为每个核心下载一次?而每个核心运行时使用了不同的地址?"是的。放在共享内存中的数据每个核都可以访问,全局数据只有一份。“能否这样配置:全局的数据只下载到一个指定的位置,代码段可以放在一个指定的位置,或者每个核心可以将代码段下载多次。然后每个核心从相同的地方取数据或者取指令。”可以。

Andy Yin1:

回复 Jackay Chang:

多核可以每个核分别拥有独立的代码,也可以共享一份代码,你们说的应该就是多核共享一份代码。

对于多核共享一份代码,每个核的堆栈在各自的私有memory,每个核可以有私有的数据memory,也可以有共享的数据memory,这些都可以根据特定的应用需求在cmd文件中通过划分,在代码中通过pragma指定各个代码及数据段所处的地址空间。在CCS下建立一个工程,在CMD下指定text代码段到共享memory,数据部分根据需要划分即可,此时各核会共享代码,生产out文件分别下载到各核即可。

参考链接:http://processors.wiki.ti.com/index.php/Using_DSP/BIOS_on_Multi-Core_DSP_Devices

Jackay Chang:

回复 Andy Yin1:

非常感谢您的回答,我再看看相关资料,有什么问题再咨询,谢谢~

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