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:CCS Theia 错误:CPU2 闪存组已锁定且无法配置 — 解决方案通常会失败

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1583771/tms320f28p650dk-ccs-theia-error-cpu2-flash-banks-locked-and-not-configurable---solution-often-fails

器件型号: TMS320F28P650DK

这与此处的讨论有关: 问题 

在这里:
【常见问题解答】 

遵循常见问题解答中的解决方案有时可行、但并非总是可行。 在重复刷写或调试会话后、某些内容似乎会“卡住“。 当您允许 GUI Composer 刷写器件时、该选项永远不会起作用、然后常见问题解答解决方案也会停止工作一段时间。  

按照零噪声上电的常见问题解答解决方案进行操作:

  • 从 TMS320F28P650DK9.ccxml 启动无工程调试(从示例工程创建)
  • 连接到两个内核
  • Properties>CPU1>闪存设置>为 CPU1 配置组 0-2、为 CPU2 配置组 3-4
  • 擦除设置:仅擦除组 0-2
  • 配置时钟
  • 保存并关闭
  • 继续 CPU1
  • load>(我的程序,一个示例程序,似乎无关紧要)
  • Properties>CPU2>请注意、闪存组映射设置显示为灰色、所有设置为 0
    • image.png
  • 擦除设置:仅擦除组 3 和 4
  • 保存并关闭
  • 继续 CPU2
  • Run> Load>我的程序
  • 成功

`s打开一个 GUI Composer 程序,并意识到它尝试再次刷写程序(尽管 gc-model-program 中的` ymbolsOnly=true<eps> )并失败:

image.png

我们再次尝试前面的步骤

  • 开始调试
  • 连接两个内核
  • 检查配置是否仍然良好
  • 配置时钟
  • 运行、然后加载 CPU1
  • 检查 CPU2 配置
  • 运行、然后加载 CPU2
  • 失败: image.png

下电上电、重试、仍然失败。 最终我可以尝试闪存和重新闪存并使其正常工作、但这大约是每 10 次尝试中的 1 次。  

 

我注意到的几件事情可能是线索:

  1. 当我刷写 CPU1 时、右下角的弹出窗口会显示“Erasing Bank 0“、然后显示“Erasing Bank 1“、然后显示“Erasing Bank 1“、最后显示“Erasing Bank 1“、最后显示“Erasing Bank 2“ 另外 3. 在继续之前的短暂时间 — 尽管组 3 配置为 CPU2、但未检查是否使用 CPU1 进行擦除
  2. 如果我在错误状态下执行“空白检查“、则会显示以下消息:C28xx_CPU2:FLASH Programmer:error during blank Check @ address 0x00080000;Expected 0xFFFFFFFF、actual 0x00000000 (0)。
    这是否表明“擦除“函数填充 0 而不是 F? 这是一个配置选项吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Stewart:  

    是自定义 GUI Composer 程序还是 Gallery 上提供的一个程序。 我正在尝试确定 GUI Composer 应用程序是否可能导致某个问题。 您是否利用程序加载器组件或其他方法来刷写器件。 我还可以看到工程师对所引用主题提供帮助的反馈

    此致、

    彼得

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

    这是一个自定义的 GUI Composer 程序、但也是最简单的程序、只需严格遵循链接的线程即可实现。 我认为有两个问题:

    1.刷写双核微控制器的默认机制不起作用,所以我需要做调试模式权变措施。 正如其他人指出的那样、这是一个非常缓慢的开发工作流程。 在我的情况下,它似乎并不总是有效的。  

    2、GUI Composer v3 与两个内核交互的方法不尊重`gc-model-program`中的`symbolsOnly`标志,所以它坚持刷写设备,撤销问题 1 中的解决方法。  

    下面是我对默认 v3 项目所做的唯一更改(除了将我的.out 文件上载到./firmware)

    <!-- Add target communication configuration below this line -->
    <gc-target-connection-manager id="connection_manager" auto-connect active-configuration="xds_1(pm_1,pm_2)">
    <gc-transport-xds id="xds_1" device-name="TMS320F28P650DK9" connection-name="Texas Instruments XDS110 USB Debug Probe"></gc-transport-xds>
    <gc-model-program id="pm_1" core-name="C28xx_CPU1" program-or-bin-path="./firmware/cpu1.out" symbolsOnly optional></gc-model-program>
    <gc-model-program id="pm_2" core-name="C28xx_CPU2" program-or-bin-path="./firmware/cpu2.out" symbolsOnly optional></gc-model-program>
    </gc-target-connection-manager>

    我尝试设置`symbolsOnly=“true"`“`以及其他一些变化。 相同、包括/不包括`可选`标志。

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

    您好、Stewart:

    >1. 当我刷写 CPU1 时、右下角的弹出窗口会显示“Erasing Bank 0“、然后显示“Erasing Bank 1“、然后显示“Erasing Bank 1“、最后显示“Erasing Bank 1“、最后显示“Erasing Bank 2“  另外 3.  在继续之前的短暂时间 — 尽管组 3 配置为 CPU2、但未检查是否使用 CPU1 进行擦除

    您能否说明提供这些声明的 CCS Theia 版本? 这是否会采用最新版本的 CCS Theia?

    >2. 如果我在错误状态下执行“空白检查“、则会显示以下消息:C28xx_CPU2:FLASH Programmer:error during blank Check @ address 0x00080000;Expected 0xFFFFFFFF、actual 0x00000000 (0)。
    这是否表明“擦除“函数填充 0 而不是 F? 这是一个配置选项吗?

    这表明 CPU2 没有闪存组 3 的所有权(在 CPU2 闪存窗口视图中看到 0x0000 值)。 您能否 通过寄存器视图中的 BankMuxSel 在闪存组 3 地址处提供 CPU2 的存储器窗口确认、以及当前闪存组所有者?

    谢谢。此致、

    Charles

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

    我相信这有你可能需要的所有版本信息,但告诉我(如何)如果你需要更多.  

    CPU2 的存储器视图全为零:

    而 CPU1 的存储器视图不是:

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

    抱歉、我忘记添加 BankMuxSel 寄存器:

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

    这是一个持续存在的问题。 有人能帮忙吗?