专家你好,请问DSP6678下能实现SMP方式不?主core创建任务时指定该任务在哪个core上运行。
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.
专家你好,请问DSP6678下能实现SMP方式不?主core创建任务时指定该任务在哪个core上运行。
您好:
您这里的SMP是指像Linux那样的不需要关心在哪个核上跑的任务分配机制吗?如果是这样的话那暂时无法支持,但是可以指定任务在某个核上执行,在包含了‘C6x.h’这个头文件之后,每个核都可以使用DNUM这个寄存器来获得当前代码所运行在的核的核号,例如:在DSP Core0上,DNUM=0, 在DSP Core1上,DNUM=1,以此类推,利用这个寄存器可以将代码根据判断指定核号来执行某部分特定代码,如:
if(DNUM == 0)
{
func1();
}
if(DNUM == 1)
{
func2();
}
else
{
func3();
}
。。。
我的目的是:
1、不想用AMP方式,8个core需要创建8个工程,即使源代码完全相同,也得需要8个不同的cmd链接文件,来使产生的8个out文件定位到8个不同的内存段中,仿真器调试时还得将8个out文件分别下载到DDR3内存中去,这么调试起来工作量巨大且效率低下;
2、由于上述原因,因此想找个类似SMP技术,8个核共用1个out文件,最近发现openMP技术可以实现1个out支持多个核的目标,在其他平台下openMP支持openMP线程由于core之间的绑定,但是还不知道DSP下也支持这个绑定特性不?如果支持请问怎么操作才能实现任务与core之间的绑定关系。