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

如何在多核中使用multicore shared images方法建立工程?

TI工程师:

    您好,我使用的是C6670开发板,根据项目需要,我需要在多个核上下载不同的工程文件(即采用的multicore images的方式)。但是现在我遇到的问题是:如果多个核都要使用QMSS或者EDMA这种公用资源,系统就无法正常工作,比如核0中可以正常工作,核1中就无法正常工作。我个人分析原因是由于两个工程中QMSS或者EDMA的库文件没有公用(两个工程各自有一个QMSS或者EDMA的库文件)。

   所以我想问一下:如果采用用multicore images的方式建工程,QMSS这类资源应该怎么用?因为在一个工程下载到四个核的模式中知道QMSS或EDMA要在核0中初始化,但是使用multicore images的方式即使都在核0上初始化还是无法正常工作,希望TI工程师能够指引一个方向。

   另外还有一个问题:我查询multicore programming guide时发现可以采用multicore shared images的方式建立多核应用的工程文件,但是网上只有DSP/BIOS的一个例子,不知道这种multicore shared images的方式可以解决我上面的问题不?还有就是可以提供一个SYS/BIOS的例程不?

   TI给出的multicore images的网址:http://processors.wiki.ti.com/index.php/Using_DSP/BIOS_on_Multi-Core_DSP_Devices

Andy Yin1:

对于你这种应用,建议最好由一个core统一完成QMSS等共享资源的初始化,其他core等待初始化完成后才继续往下执行。

像你提到的QMSS及EDMA,QMSS的初始化过程最好由一个core初始化一次,而EDMA主要是配置channel及set相关,只要保证多核对EDMA channel及set的资源使用不冲突即可。

像你这种每个core有一个image,在建立工程时每个core对应一个工程即可,注意各核在使用共享memory时不要覆盖。

cat cat:

回复 Andy Yin1:

Andy Yin1:        您好,其实之间我曾经尝试过通过一个project生产同一个out文件,下载到不同的core实现多核应用(当然QMSS以及EDMA初始化都是在CORE0中实现,然后通过IPC或者semaphore的方式通知其他核初始化完成)。但是发现一个project情况下L2SRAM分配非常糟糕,比如CORE0中定义在L2SRAM中的变量或者数组,在其他核中并需要,但是还是占据这些核中L2SRAM宝贵的资源,导致L2使用空间减少。所以我才使用multicore image的方式。        其实现在的问题就是:如果不同核之间,如果想共用一部分代码或者lib的话,应该怎么做呢?当然如果通过一个project的方式这个很好解决,我很想了解一些multicore shared images的使用方法。

赞(0)
未经允许不得转载:TI中文支持网 » 如何在多核中使用multicore shared images方法建立工程?
分享到: 更多 (0)