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:闪存操作期间发生错误

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1346066/tms320f28p650dk-error-occurred-during-flash-operation

器件型号:TMS320F28P650DK
主题中讨论的其他器件:C2000WARE

我创建了一个双核工程并更新了链接器命令文件、以便使用 BINIT 表将程序加载到闪存组中并从 RAM 运行代码。 尝试刷写代码时、在闪存组映射至 Core2的过程中加载程序时出现错误。 我在下面附上了错误的屏幕截图。  

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

    大家好、Risitha、

    请搜索" TMS320F28P65x 闪存插件用法  说明"、然后确认是否根据需要配置了闪存插件设置。

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1096194/faq-c2000-ccs-flash-plugin-and-uniflash 

    谢谢。此致、

    瓦姆西

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

    我已按照建议配置了闪存插件设置。 我仍然面临这个问题。  

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

    尊敬的 Rishitha:

    您如何配置引导模式 GPIO?  您能否尝试等待引导、看看这是否有用?

    如果不是您的应用、您是否能够使用闪存构建配置加载任何 C2000ware 示例?

    谢谢。此致、
    瓦姆西

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

    引导模式 GPIO 配置为引导至闪存模式。 我能够闪存其他 C2000ware 示例项目。 当我尝试加载这个特定项目时出现错误。 但是、当我擦除闪存组并尝试闪存时、我没有遇到任何此类错误。 相反、Core1将进入默认 NMI ISR。

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

    Rishitha,

    您能否尝试将引导模式引脚设置为等待引导、看看会发生什么情况?

    谢谢。此致、

    瓦姆西

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

    我已将引导模式引脚设置为等待引导并刷写程序。 仍然获得相同的误差。

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

    尊敬的 Rishitha:

    您能否 发送有关组映射和擦除设置的 CPU1和 CPU2闪存插件设置的快照?

    谢谢。此致、

    瓦姆西

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

    尊敬的 Vamsi Gudivada:

    PFA CPU1和 CPU2闪存插件设置的快照。

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

    尊敬的 Rishitha:

    您是否执行此  操作"在执行任何 CPU2闪存插件操作(包括将任何可执行文件加载到 CPU2闪存)之前、请使用 CPU1闪存插件 GUI 中的"配置时钟"?

    谢谢。此致、
    瓦姆西

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

    我只能在调试视图中看到配置时钟按钮。 我希望在没有 JTAG 连接的情况下独立运行器件、所以我将尝试在不进入调试模式的情况下直接刷写代码。  

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

    RIshitha,

    您可以将代码编程到闪存中、然后在独立模式下进行下电上电并将器件设置为闪存引导。   

    谢谢。此致、

    瓦姆西

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

    尊敬的 Vamsi Gudivada:

    我在 Core1中使用 DMA、它的触发频率非常高。 由于我还没有对两个内核进行任何同步、即使在 Core2中刷写代码之前、Core1也开始执行、而 Core1中的 DMA 正在使用 GS RAM 进行数据传输。 这可能是产生该误差的原因吗? 因为当 DMA 未使用 GSRAM 时、则不存在该问题。  我附加了一条在 Console 中显示的消息。

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

    尊敬的 Rishitha:

    是的、可以。

    当 CPU1未使用 GSx 时、请尝试对 CPU2进行编程。

    在加载 CPU1之前请勿运行 CPU1 (假设您正在加载两个内核的存储体)。

    谢谢。此致、
    瓦姆西

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

    我已经创建了一个系统工程、并使用"闪存"按钮在闪存组中加载程序。 因此、Core1在加载到存储体后立即开始运行。 我如何避免这种情况呢?

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

    Rishitha,

    • 从 Target Configurations 窗口启动目标配置文件(CCS debug -> View -> Target Configurations)。   
    • 连接到内核。
    • 在 CPU1上加载代码。
    • 在 CPU2上加载代码。
    • 运行 CPU1。
    • 运行 CPU2。

    谢谢。此致、

    瓦姆西

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

    谢谢、这个问题解决了。 我已经将 IPC 同步功能添加到程序中。 当我直接刷写代码而不执行上述步骤时、Core1绕过 IPC 标志并开始运行、而无需等待酷睿2发送确认。 但是、当我手动启动(上述建议过程)时、不会发生这种情况。 为什么会发生这种情况?

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

    Rishitha,

    很高兴它提供了帮助。   

    可能 IPC 标志包含过时信息。  您可能需要在加载后进行复位、然后再执行。

    谢谢。此致、
    瓦姆西