我用是的是F28379D。情况是我在运行主程序的时候,比如官方的IDDK例程,到某一段需要按顺序计算多个矢量的作用时间,这时候我想用双核(或者加上双核的CLA一共4个核)来并行计算,从而提高计算效率。请问我应该怎么实现呢?官方的双核例程都是两个工程做不同的事情,比如CPU1给CPU2提供时钟复位。我能否在某一个主工程中需要CPU2的时候调用CPU2,不需要的时候接着运行主工程呢?
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.
我用是的是F28379D。情况是我在运行主程序的时候,比如官方的IDDK例程,到某一段需要按顺序计算多个矢量的作用时间,这时候我想用双核(或者加上双核的CLA一共4个核)来并行计算,从而提高计算效率。请问我应该怎么实现呢?官方的双核例程都是两个工程做不同的事情,比如CPU1给CPU2提供时钟复位。我能否在某一个主工程中需要CPU2的时候调用CPU2,不需要的时候接着运行主工程呢?
你好,我觉得你的情况应该更适合使用CLA核进行计算方面的task,CLA本身就是为了浮点运算而设计的,CPU可以通过中断或者软件触发的方式调用CLA进行各种浮点计算任务。计算速度更快的同时,CLA是独立于CPU的一个处理器,不会占用CPU资源。详细的可以参考芯片TRM的Chapter 6. Control Law Accelerator (CLA)部分内容以及TI提供的CLA例程:
C:\ti\c2000\C2000Ware_3_01_00_00\device_support\f2837xd\examples\cpu1
我明白你的意思了,要使用到CPU2 就必须新建立一个工程,然后在CPU1工程中通过IPC控制启动CPU2来进行协同工作对吧。我可以这样理解吗请问:如果我想在官方的开发套件工程(比如C:\control_suite\controlSUITE\development_kits\TMDSIDDK_v2.0\IDDK_PM_Servo_F2837x_v2_00_00_00)的基础上在某一段用到CPU2做并行计算,我得新建一个CPU2的工程然后自己实现这个功能是吗?
其实我最想知道的是官方是否有这样的例程或者案例可以提供参考,我在controlsuite和C200Ware里面都没有找到类似的例子。