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.

[参考译文] MSPM0G3519-Q1:在 CSC 启用后使用 XDS110 连接电路板时出现问题

Guru**** 2794735 points

Other Parts Discussed in Thread: UNIFLASH, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1619537/mspm0g3519-q1-issue-with-connecting-the-board-using-xds110-after-csc-enable

器件型号: MSPM0G3519-Q1
Thread 中讨论的其他器件: UNIFLASHSYSCONFIG

您好 TI、

在 ECU 上启用客户安全配置 (CSC) 时遇到问题。 执行以下操作后:

-通过 BOOTCFG5 启用 CSC

-然后使用“DL_SYSCTL_issueINITDONE"启动“启动 INITDONE

- SYSRST 成功发生,初始化完成设置为 1

下一次硬件重置后、我无法与 ECU 建立连接。 调试器指示 ECU 处于低功耗模式并拒绝建立任何连接。

这是我在启用 CSC 后使用的功能实体

我已经尝试了以下步骤来重新获得调试访问权限但没有成功:

  1. 已拔下 LaunchPad。
  2. 长按 S1 (BSL) 按钮。
  3. 按住 S1 的同时插入 USB 电缆。
  4. 2 秒后释放 S1。

此外、我尝试了同时使用 UniFlash、BSL 和 CCS 工具进行批量擦除和恢复出厂设置;但是、无法建立连接。

请注意、 如文档中所述、我在 0x000 处配置了 CSC 矢量表、在 0x0004 处配置了其复位处理程序

您能否提供有关如何解决此问题并与 ECU 重新建立调试连接的指导?

这是尝试使用 IAR 进行连接时的确切错误

image.png

 请 在此处找到 uniflash 出厂重置操作中的日志文件

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

    尊敬的 Ghada:
    客户安全代码设置过程中可能出现问题。 下面是我要与您确认的关于将器件重置为恢复出厂设置的内容。 请按照接下来的步骤执行此操作(如果此操作失败,则表示器件发生故障,原因很可能是非主器件配置错误):

    1.断开 LaunchPad 与电源的连接
    2.打开器件的 Uniflash 会话(检查器件和调试器,或选择 LaunchPad 映像)
    3.按住 NRST 按钮 (S3)。
    4.将 LaunchPad 接通电源,同时继续按住 NRST 按钮
    5.单击“设置和实用程序“选项卡,然后单击/发出手动恢复出厂设置 DSSM 命令
    6.当控制台提示您按 NRST 按钮时、松开 NRST 按钮

    对于 CSC 问题、实现不正确;某些组件可能未正确配置(尤其是 NONMAIN)。 我建议遵循 MSPM0 SDK 中的示例、仔细检查我们提供的实现以使其更加清晰、因为它应该按预期工作。 此 示例的链接


    此致、
    Diego Abad

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

    您好、Diego、

    我尝试了您提到的顺序、从 CCS 中得到了这个错误:

    对于在 NONMAIN 中启用 CSC、我遵循了以下顺序:

    1.阅读非主区域

    2.使用 CSCEXIST 更新了 BCR [BCR.CSCSCSCexist= BCR_CFG_CSC_EXS_EN]

    3.更新 BCR 时计算出的 CRC

    4.然后写 non main 通过取消保护,擦除,然后写扇区

    那么、您能解释一下为什么设置正确吗?

    而对于上述代码片段:

    这只是 示例中用于检查 INITDONE 行为设置和清除的片段、稍后应该会使用序列的其余部分进行更新、那么您是否还能阐明这可能会锁定 ECU 的原因?

    谢谢您、

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

    尊敬的 Ghada:
    您是否可以尝试通过 UNIFLASH 而不是 CCS 执行恢复出厂设置? 我认为 UNIFLASH 更适合恢复出厂设置。 如果它仍然给你一个问题,那么是的,它是坏了。  


    至于启用 CSC、SDK 中的示例应该在 SysConfig 文件中为您计算 CRC。 我们通常不建议在侧面计算 CRC、因为可能会发生一些错误(计算错误或计算出的 CRC 中未考虑到的扇区)。 此外、我假设您是指在 XDS110 调试/闪存选项中取消保护、简化和写入 NONMAIN 中的扇区。 我们建议仅  在 NON-MAIN 存储器中擦除和写入必要的段、而不是在整个 NON-MAIN 存储器中写入。  

     

    特定的代码片段可能/不可能是代码被锁定的根本原因。 但是、我认为值得回顾 SKD 中的示例、进一步澄清需要在 NONMAIN 配置和文件设置方面做些什么。 因此、我建议将其用作参考、并匹配您可能存在的任何差异。

    此致、

    Diego Abad

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

    您好、Diego、

    我尝试使用 uniflash 工具,同样的错误仍然存在,这是可以的船被刷新我只是想确认根本原因不砖另一个.

    重新评级非主要点我肯定会考虑你的建议,关于我将设置它的方式,但  MSPM0 NONMAIN 闪存配置指南 提到、如果非主器件配置了错误的 CRC、它应正常连接到 DAP、然后我将能够使用错误代码“0x0001.0136"读取“读取引导诊断、该错误代码指示非主器件的 CRC 校验和失败

    我的问题是 DAP 拒绝按如下方式进行连接:

    因此、我只想确保导致 ECU 崩溃的问题的根本原因、以免再次犯同样的错误。

    因此、请就根本原因提供反馈。

    谢谢你

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

    尊敬的 Diego:

    我还想 强调一个可能已锁定 ECU 的点:

    寄存器 BOOTCFG4 寄存器  

    根据此寄存器、如果对 CSC 启用了调试保留功能、它应该会暂停调试访问、直到 CSC 执行完成、我的代码片段始终保留在 CSC 代码中、那么是否可能启用了这个 锁定了 ECU 调试的 DEBUGHOLD? 如果是这样、在不显式设置寄存器的情况下、有什么可能启用此功能?

    谢谢您、

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

    尊敬的 Ghada:
    就像现在一样、我可以确定的根本原因是 NONMAIN 配置错误。 我不确定具体发生在哪里或如何、尽管可能在擦除整个 NONMAIN 后、这些寄存器值并未按预期设置、从而导致器件被锁定。 如果器件无法与调试器通信、原因可能有多种、例如 BOOTCFG0  配置不正确、SWD 已禁用、或者您在 BOOTCFG4 中提到的。  我建议仔细检查正在向 NON-MAIN 写入哪些特定值、以避免其出现任何特定问题。


    我不能 100%确定您工程中寄存器值的更改内容。 我建议查看您工程中的 NONMAIN 配置部分并识别任何异常设置或差异。 我认为、比较我们提供的示例可以提供有关如何设置 NONMAIN 的良好指导(特别是 SYSCFG 生成的.h 和.c 文件中的 NONMAIN 配置)。


    此致、
    Diego Abad