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.8377万D:CPU2正在运行CPU1加载的RAM代码

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/640806/tms320f28377d-cpu2-running-ram-code-loaded-by-cpu1

部件号:TMS320F2.8377万D

您好,

我想知道是否可以将CPU1中的RAM代码加载到CPU2中,以便它可以从此处运行。

目标是避免为CPU2使用另一个.out文件。

例如,当CPU2必须运行一个小功能时,其目的是简化流程。

此致,

Federico Rossi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是可能的,尽管不是直接的方法。
    您必须使用共享RAM,并且例程必须自包含,以便它不会引用未加载到CPU2中的其他位置。

    如何触发CPU2中的此例行程序? 如果是通过中断,则还需要设置中断向量表,这将使事情变得更加复杂。

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

    感谢您的回复。 我想知道如何启动这一程序。
    假设我在地址A的共享RAM中有主要功能(如您所解释的自包含),CPU1启动时加载了该功能。
    如何在地址A处启动CPU2?
    -从CPU1设置CPU2的程序指针? 不确定是否可能。
    -在引导过程中,CPU2是否从已知的共享RAM传递,在此过程中我可以将分支插入到?
    其他方式?

    这是我的问题的背景:
    我想将其用于引导加载程序。 其目的是将引导加载程序仅闪存至CPU1,只有一个.out文件。
    CPU1启动后,将闪存API和主功能(A)加载到共享RAM中。 然后CPU2从A开始运行
    CPU1能够对其闪存进行编程,但无法对CPU2闪存进行编程。 如果我了解,只有CPU2可以对其闪存进行编程。
    当我们要对CPU2闪存进行编程时,我们通过IPC将数据从CPU1发送到CPU2 (无需使用中断,可以使用IPC标志执行),以便CPU2中运行的主功能(A)可以对其闪存进行编程。
    请注意,如果CPU1能够对CPU2闪存进行编程,则此应用程序根本不需要CPU2。
    顺便说一句:如果太复杂,在CPU2中再安装一个.out不是什么大问题,但我想了解这个过程。

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

    在CPU2引导至空闲时,它启用了IPCS。 请参阅TRM中的IPC命令 :http://www.ti.com/lit/spruhm8
    IPC分支调用和功能调用可允许CPU2在共享RAM中运行代码。 在这里,您可以让CPU2编程它自己的闪存。

    此致
    Chris