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.

[参考译文] TMS320F28P650DK:CPU2和 CPU1问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1286275/tms320f28p650dk-cpu2-and-cpu1-issue

器件型号:TMS320F28P650DK

大家好、

我使用的是  TMS320F28P650DK 处理器、且有以下问题。

当我在 CCS 中断开 CPU2时、CPU1也会断开。 为什么会这样呢? 与像 F28379D 这样的其他多核处理器不同、

2.我在 CPU1中闪烁 LED1 (GPIO31)、在 CPU2中闪烁 LED2 (GPIO34)。 我可以看到两个 LED 都在闪烁。

现在、我断开 CPU2、CPU1也会断开连接。 LED 仍在闪烁。

我现在连接 CPU1、CPU2 代码 停止工作(LED2不闪烁)。 这是预期结果吗? 或者是否有必须遵循的序列/

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

    您好!

    Unknown 说:
    1. 当我在 CCS 中断开 CPU2时、CPU1也会断开。 为什么会这样呢? 与像 F28379D
    这样的其他多核处理器相比、

    让我来检查一下、然后给您回复。

    [quote userid="448119" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1286275/tms320f28p650dk-cpu2-and-cpu1-issue 现在我连接 CPU1、CPU2 代码 停止工作(LED2不闪烁)。 这是预期结果吗? 或者是否有必须遵循的序列/

    这是因为当您连接 CPU1时、CPU1 GEL 文件会发出复位以将两个 CPU 复位、因此两个 LED 都停止闪烁。  

    此致、

    维维克·辛格

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

    您好、Vivek、

    我的问题以前不清楚。  

    我有、在 CPU2中、从闪存 LED 引导、正在运行闪烁的代码。

    现在、我在 CPU1中加载某些内容。 这会使 CPU2进入不良状态。 它卡在'_system_post_cinit ()'处

    每次我在 CPU1中加载某些内容时,CPU2代码都不起作用,我必须重新加载 CPU2代码才能正常工作。

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

    此外、

     通过设置 DevCfgRegs.BANKMUXSEL.ALL = 0x000003C0U、我为 CPU2选择了组3和组4;

    在 CCXML 的闪存设置中、我完成了相同的存储体设置。

    当我选择 CPU2引导模式为0x83时、我无法在 CPU1或 CPU2中加载程序。

    我收到以下错误:  

    C28xx_CPU1:闪存编程器:擦除组3 FMSTAT (在某些器件上为 STATCMD)时出错值= 65。 操作已取消(0)。
    C28xx_CPU1:文件加载程序:存储器写入失败:未知错误
    C28xx_CPU1:GEL:文件:~……\CPU1_GPIO.out:加载失败。

    1.为什么会出现这种错误?

    2.在 CCXML 中选择银行有什么意义?

    3.如果我想要 CPU2的 BANK3和 BANK4以及 CPU1的 BANK 0到2 ,我需要做任何额外的事情吗?

    4.为什么将 BOOTMODE 设置为0x83会导致 CPU1和 CPU2都出现加载错误?

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

    是的、这是因为当您在 CPU1上加载代码时、GEL 文件会发出复位和 CPU1复位、也会复位 CPU2、因为 CPU1是此器件上的主控制器。 在 CPU1上加载代码后、您不必在 CPU2上加载代码。 只需点击"Restart"、它应该有效。  

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

    让我请到我们的 flash 专家来回复这个问题。

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

    尊敬的 Irene:

    这是今天分配给我的。  我会在一两天内查看并回复您。  谢谢你。

    此致、
    瓦姆西

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

    尊敬的 Irene:

    在使用 F28P65x 闪存插件执行任何闪存操作之前、

    (a) 请选择哪些闪存组应映射到哪个 CPU (CPU1与 CPU2)-此选择应在 CPU1闪存插件 GUI 中完成(CCS 调试视图->工具->片上闪存)。

    (b)请 选择希望闪存插件擦除的闪存组(在 CPU1闪存插件 GUI 和 CPU2闪存插件 GUI 中单独选择)。  

    (c)   在执行任何 CPU2闪存插件操作(包括将任何可执行文件加载到 CPU2闪存)之前、请使用 CPU1闪存插件 GUI 中的 Configure Clock 按钮配置 PLL。

    (d)如果您希望 CCS 记住您在闪存插件 GUI 中配置的设置、需要点击 GUI 底部的"Remember My Settings"按钮。  这将使插件记住您为下一次迭代配置的设置。

    让我知道情况如何。

    谢谢。此致、

    瓦姆西

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

    尊敬的 Vamsi:

    我配置了 片上闪存。 组0-2分配给 CPU1、组3和4分配给 CPU2。 在 CPU1中、我正在通过配置  DevCfgRegs.BANKMUXSEL 寄存器来进行类似的设置。 我仍然面临以下问题。

    1.如果 CPU2的引导模式为  0x83、则无法在 CPU1或 CPU2中加载程序。

    尽管组2被分配给 CPU1、但我收到以下错误。

    C28xx_CPU1:闪存编程器:擦除组2 FMSTAT (在某些器件上为 STATCMD)时出错值= 65。 操作已取消(0)。
    C28xx_CPU1:文件加载程序:存储器写入失败:未知错误
    C28xx_CPU1:GEL:File:C:\Users\iboben\OneDrive - MathWorks\Iren\Embedded Targets\24a\P65x\Buss\CPU1_GPIO.out:加载失败。

    2.如果 CPU2的引导模式为  0x03,则在我先执行 CPU1,然后执行 CPU2时,代码正在运行。 不过、当我在 CPU1中加载新代码时、CPU2进入不良状态。 它卡在'_system_post_cinit ()'处

    我每次在 CPU1中加载某些内容时都必须重新加载 CPU2代码。

    3.同样这个问题仍然存在: 当我在 CCS 中断开 CPU2时,CPU1也会断开。 为什么会这样呢? 与像 F28379D 这样的其他多核处理器不同、

     

    期待您的答复。

    谢谢。此致、

    艾琳

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

    尊敬的 Irene:

    1) 1) CPU2的引导模式是什么意思?  您在哪里以及如何配置它?   

    2) 2)您正在使用哪个版本的 CCS?

    3) 3)您是否尝试使用 CPU1加载 CPU1和 CPU2映像?  或者您是否从 CPU1加载 CPU1映像、从 CPU2加载 CPU2映像?

    4) 4) 4) 在闪存插件 GUI 中为 CMDWEPROTx 寄存器配置了哪些值?

    谢谢。此致、

    瓦姆西

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

    尊敬的 Vamsi:

    请在线查找我的答案。

    1) 1) CPU2的引导模式是什么意思?  您在哪里以及如何配置它?  ->在 CPU1闪存初始化代码中、我要通过运行以下代码行来设置 CPU2的引导模式:

    mode |=(uint32_t)((uint32_t) 0x5A << 24);
    MODE |= 0x83;//闪存引导选项4

    // CPU01至 CPU02 IPC 命令寄存器

    IPC_setBootMode (IPC_CPU1_L_CPU2_R、MODE);

    // CPU01至 CPU02 IPC 标志寄存器

    IPC_setFlagLtoR (IPC_CPU1_L_CPU2_R、(IPC_FLAG0 | IPC_FLAG31);

    2) 2)您正在使用哪个版本的 CCS? CCS 12.4.0

    3) 3)您是否尝试使用 CPU1加载 CPU1和 CPU2映像?  或者您是否从 CPU1加载 CPU1映像、从 CPU2加载 CPU2映像?

    我正在 从 CPU1加载 CPU1映像、并从 CPU2加载 CPU2映像

    4) 4) 4) 在闪存插件 GUI 中为 CMDWEPROTx 寄存器配置了哪些值?

    我没有修改它。

    谢谢。此致、

    艾琳

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

    尊敬的 Irene:

    1) 1)您是否可以发送 CPU1闪存插件 GUI 快照、其中显示您选择的 CPU 到存储体的映射配置?

    2) 2)您是否可以发送 CPU1和 CPU2闪存   插件快照、其中显示您为闪存插件配置的闪存组选择?

    谢谢。此致、

    瓦姆西

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

    尊敬的 Vamsi:

    CPU1闪存插件 GUI:

    CPU2闪存插件 GUI:

    希望这对您有所帮助。

    谢谢。此致、

    艾琳

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当我在 CCS 中断开 CPU2时、CPU1也会断开。 为什么会这样呢? 与像 F28379D 这样的其他多核处理器不同、

    让我来检查一下、然后给您回复。

    [/报价]

    尊敬的 Irene:

    我只是想向您介绍这个特定问题的最新情况。 我们承认这就是它今天的工作方式。 发生这种情况是由于最近的 CCS 版本中实施了该功能之一。 我们已将此问题提交给我们的 CCS 支持团队、他们将详细查看该问题并查看是否可以解决、但这需要一些时间。

    感谢您提供此反馈。 我们不胜感激。

    此致、

    维维克·辛格

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

    尊敬的 Irene:

    您能为我们提供一些可执行文件、以便我们能够重现此问题吗?

    谢谢。此致、

    瓦姆西

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

    e2e.ti.com/.../executables.zip

    尊敬的 Vamsi:

    我 已经附加了可执行文件。 我不确定我在这里遗漏了哪项设置。 重新加载 CPU1闪存的一刻、CPU2闪存中运行的代码就会停止。

    谢谢。此致、

    艾琳

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

    您好、Vivek、

    您能否分享跟踪详细信息(如果存在),以便我知道何时修复。

    谢谢。此致、

    艾琳

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

    尊敬的 Irene:

    谢谢你。  我将尝试执行文件、并在一周结束前与您联系。

    谢谢。此致、
    瓦姆西

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

    谢谢 Vamsi

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

    尊敬的 Irene:

    根据您在本文之前回复中的快照、我假设您的应用对 CPU1使用组0-2、对 CPU2使用组3-4。

    我相应地配置了 CPU1和 CPU2闪存插件、并加载了您在 CPU1/2上提供的三次可执行文件、没有任何错误。   

    出现错误时、您可能没有配置每个 CPU 的(i)个存储体和(ii)在 CPU1/2闪存插件中正确擦除的存储体?

    谢谢。此致、
    瓦姆西

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

    尊敬的 Vamsi:

    我是这样做的。 但我会重试。 同时、当您成功加载两个 CPU 时、两个 LED 闪烁。 然后再次加载 CPU1、CPU2 代码是否正常工作? 我的意思是两个 LED 仍然在闪烁?

    谢谢。此致、

    艾琳

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

    尊敬的 Irene:

    我没有检查执行行为。  我可以帮助编程-我看不到任何编程问题。

    请告诉我在您尝试我建议的设置后如何进行。

    请注意:我目前不在办公室、下周还会回来。   

    谢谢。此致、

    瓦姆西

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

    尊敬的 Vamsi:

    更改片上闪存设置来调整闪存设置。 我能够正确加载两个 CPU。

    当我重新加载 CPU1时、CPU2停止工作的问题是由 MCUCNFx 寄存器导致的。 我 在代码中添加了 SYSCTL_emulateDevice、它运行良好。 这是我在其前身 F2838x 和 F2837xD 中看到的新功能、

    我们是否有任何文档详细介绍了这些关于 F28P65x 处理器的新更改?

    谢谢。此致、

    艾琳

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

    尊敬的 Irene:

    欢迎使用建议的闪存插件设置、该设置有助于在两个 CPU 存储库中成功加载映像。

    关于 MCUCNFx: TRM 中是否未记录这些寄存器?  如果迁移指南中没有这一点、我可以向文档团队提出建议。  请告诉我。

    谢谢。此致、
    瓦姆西  

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

    尊敬的 Vamsi:

    是的、迁移指南中没有此内容。 这是需要的、因为这是一个新寄存器、如果没有正确配置 CPU2、则会停止重新加载 CPU1

    谢谢。此致、

    艾琳

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

    尊敬的 Irene:

    感谢您对迁移指南的反馈。  我将通知迁移指南作者此事。

    我正在关闭此帖子。

    此致、

    瓦姆西