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.

[参考译文] TMS320F2.8388万D:如何一起使用CPU1和CPU2

Guru**** 2253580 points
Other Parts Discussed in Thread: C2000WARE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1082670/tms320f28388d-how-to-use-cpu1-and-cpu2-together

部件号:TMS320F2.8388万D
主题中讨论的其他部件:C2000WARE

大家好,

我正在为我的项目使用TMS320F2.8388万控制器。 使用CPU1,我可以执行/调试我的代码。

现在我打算使用CPU1和CPU2。

1. 使用两个内核所需的项目配置更改是什么?

2.如何调试两个内核。

提前感谢

此致

压线

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Dipin,

    有关双核的C2000Ware DriverLib示例,请访问:

    c/ti/C2000/C2000Ware_4_01_00_00/driverlib/f2838x/examples/C28x_dual/led</s>2000 2838

    基本上,您可以使用DULE_CORE从empty_project开始,它将为您的设置项目包含路径和链接器路径。

    下面是一个链接,它将引导您完成‘使用CCS实现多核化’:

    https://software-dl.ti.com/ccs/esd/documents/ccs_multi-core-debug.html

    谢谢,此致,

    Santosh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    感谢您的回复。

    我们使用的示例代码 是IPC_ex1_basic_c28x1和 IPC_ex1_basic_c28x2。  

    在本示例代码中,我们将命令从CPU1发送到CPU2,并在CPU2的ISR处接收数据。

    但是,当我们尝试从CPU2向CPU1发送命令时,无法 在CPU1的ISR接收数据。

    您是否可以建议和示例代码用于从CPU2到CPU1的IPC通信。

    提前感谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    纳维亚

    IPC的数据流在两个方向上都是相同的。 我不知道什么不起作用。 CPU2到CPU1的数据是否不可用,或者它不中断CPU1。  

    有多个例子可供参考。 您可以从IPC培训开始:

    https://dev.ti.com/tirex/explore/node?node=AYlvYCIFS3m3S0PporZnCQ__jEBbtmC__LATEST

    在C2000 Academy中,它介绍了如何从头开始开发代码并构建双向发送数据的代码。  

    实验练习的解决方案位于:  

    C:/ti/C2000/C2000Ware_4_01_00_00/training /2000 /设备/f2837xd/module11_inter_processor_communications

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Santosh:

    运行 示例代码 IPC_ex1_basic_c28x1和 IPC_ex1_basic_c28x2时,序列流卡在  IPC_waitForAck(ICPU1_L_CPU2_R,IPC_FLAG0); 并且流不会流向 CPU2的__interrupt void IPC_ISR0()。 这背后的原因是什么? 我没有对示例代码进行任何更改。

    此致

    Navya Anna Prince

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    纳维亚

    我刚刚测试了该示例,它按预期工作。 我不确定您是否正在构建和加载CPU2并运行它。 如果它卡在CPU1中的ACK中,则表示CPU2未运行。

    以下是您需要遵循的顺序:

    • 选择IPC_ex1_basic_c28x1项目,然后按‘错误’图标。 当提示下载到CPU1和CPU2时,取消选中CPU2。 因此,此二进制文件将仅编译,构建和下载到CPU1。 它将在CPU1的main()函数中停止。
    • 现在选择IPC_ex1_basic_c28x2项目,右键单击并按'生成项目。
    • 现在转到调试视图,连接CPU2,然后转到CCS菜单运行->加载->加载程序,然后按'浏览项目'。 选择'

      IPC_ex1_basic_c28x2.out。 加载后,它将在CPU2 main()中停止。 按F8键运行内核。

    • 现在选择IPC_ex1_basic_c28x1项目,然后按F8键运行。 它应该起作用,不会被卡住。

    我建议再花一点时间来了解一下C2000学院的IPC模块。 我之前提供了链接。 了解用于两个模芯的整个流量和握手机构将非常有用。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

     

    去年,TI发布了有关C2000器件的学院式在线培训。 培训的目的是提供逐步指导,以便开始使用C2000系列实时MCU。 我们知道,您已经在C2000学院学习了一些模块。 如果您能与Academy分享您的经验,我们希望与您联系。 您是否有任何改进反馈/建议? 我们一直在寻找改进内容的方法,以便对客户更有用,因此任何反馈/建议都将非常有帮助。

     

    非常感谢您花时间提供反馈。

     

    谢谢,此致,

    Santosh Jha