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.

[参考译文] LP-MSPM0G3519:MSPM0G3519 LaunchPad–CCS 和 UniFlash 刷写问题

Guru**** 2964790 points

Other Parts Discussed in Thread: MSPM0G3519, UNIFLASH, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1657694/lp-mspm0g3519-mspm0g3519-launchpad-flashing-issue-with-ccs-and-uniflash

器件型号: LP-MSPM0G3519
Thread 中讨论的其他器件: MSPM0G3519、 UNIFLASH、 SYSCONFIG

大家好:

我目前正在使用 MSPM0G3519 LaunchPad、使用 Code Composer Studio (CCS) 和 UniFlash 进行代码刷写。 但是、在使用两种工具的刷写过程中、我始终面临一个问题。

问题描述

每当我尝试将固件刷写到目标器件时:

  • 在 CCS 调试器 和 UniFlash 中此过程都失败
  • 问题始终出现、而不是间歇性出现

我已经试过了

  • 已使用 CCS 内置刷写/调试 和 UniFlash 独立工具
  • 已验证连接(USB 和调试器接口)
  • 确保选择了正确的器件 (MSPM0G3519)
  • 在刷写前重新编译工程
  • 已重新启动 CCS、UniFlash 和系统
  • 已尝试使用不同的 USB 端口/电缆

观察到的行为

  • 刷写未成功完成
  • 两种工具中的错误消息相同

预期行为

代码应成功编程到器件上并正常运行/调试。

非常感谢任何建议或故障排除步骤。

提前感谢!

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

    尊敬的 S D:

    您可以尝试 MSPM0 MCU 开发指南第 7.1 节中的步骤吗? 发出手动恢复出厂设置而不是批量擦除命令。

    此致、

    Owen

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

    尊敬的 Owen:

    感谢您的建议。

    我已尝试 MSPM0 MCU 开发指南第 7.1 节中的步骤执行手动恢复出厂设置。 但是、我在恢复出厂设置过程中遇到了相同的弹出/错误、并且重置未成功完成。

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

    尊敬的 S D:

    您能分享一下错误/弹出窗口说了什么吗?

    如果它为您提供了器件诊断读取值、您能否分享此信息?

    此致、

    Owen

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

    尊敬的 Owen:

    对延迟的回复表示歉意。

    我发现、无论我执行何种操作(无论是通过 CCS、 UniFlash 刷写、尝试 手动恢复出厂设置 (如 MSPM0 MCU 开发指南的第 7.1 节所述),甚至执行读取操作)、 我每次都会收到相同的弹出窗口。

    弹出消息为:

    由于在恢复出厂设置和读取操作期间也会发生相同的错误、因此我无法成功地对器件进行复位、读取或编程。

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

    尊敬的 S D:

    您是否可以尝试以下步骤:

    1. 为器件设置 Uniflash 会话
    2. 断开设备的电源
    3. 按住 LaunchPad (S3) 上的 nRST 按钮
    4. 在仍按住 nRST 按钮的同时、为器件供电
    5. 对器件发出手动恢复出厂设置命令
    6. 当系统提示按下复位按钮时、释放 nRST 按钮
    7. 如果器件仍然不可恢复、则可能 会被锁定

    要确认器件是否已锁定、您可以执行以下步骤:

    1. 打开 Code Composer Studio (CCS)、最好是 v20 或更高版本
    2. 找到或创建设备项目
    3. 在工程目录中的 targetConfigs 文件夹中、右键点击.ccxml 文件并选择 Start less Debug...
    4. 在顶部菜单栏中、转到“Scripts“、然后点击“Show All...“
    5. 在出现的脚本命令窗口中、将鼠标悬停在 MSPM0_DeviceDiagnosticRead 选项上并按绿色箭头
    6. GEL Output 选项卡显示设备诊断读取值、请共享此值

    此致、

    Owen

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

    尊敬的 Owen:

    感谢您的指导。

    我按照以下步骤验证器件是否已锁定:

    但是、我 在此过程中再次遇到相同的弹出/错误。 无论执行何种操作、该行为都是一致的。

    我附加了“Error and Gel Output“窗口、以供您参考。

    GEL 输出:  

    以下是有关 CCS 的信息

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

    尊敬的 S D:

    GEL 输出是否显示任何其他内容? 是否显示错误消息?

    此致、

    Owen

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

    我在启动无工程调试会话后等待了大约 5 分钟、但似乎陷入了僵局。 在此期间、GEL 输出未显示任何其他消息或错误。

    唯一显示的消息是我之前提到的消息。 GEL 输出窗口中不会显示新的诊断信息、错误消息或进度更新。

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

    尊敬的 S D:

    您能否分享在无法对器件进行编程之前发生的情况?

    • 应用程序代码在做什么? 您是否触摸了 NONMAIN 或禁用了 SWD 引脚、SW-DP 访问等
      • 如果可能、您能否共享工程或应用代码?
    • 您以前是否能够对该器件进行编程?

    如果 BSL 已启用、您可以尝试执行以下步骤来恢复器件出厂设置:

    调用 BSL:

    1. 在 LaunchPad 上按住 nRST 按钮不止 1 秒
    2. 按住 LaunchPad 上的 S1 (PA18)
    3. 释放 nRST 按钮、然后不久释放 S1 (PA18)
    4. 在默认的 BSL UART 或 I2C 引脚上、发送恢复出厂设置命令:

    请 勿 对器件下电上电、或向器件发出任何高于 BOOTRST 的复位电平。 如果发生上述任何一种情况、设备将不可恢复。

    使用 UART 或 I2C 控制器、您现在需要使用 BSL 对器件进行刷写。  命令的数据包结构可在 MSPM0 引导加载程序用户指南中找到。

    若要获取刷写到器件所需的 NONMAIN 存储器、可以导入一个空示例。

    接下来、转至 SysConfig 文件 (.syscfg) 并添加配置 NVM:

    然后右键点击工程并点击 Properties...来转到工程属性。

    然后、启用 Arm Hex Utility:

    然后将输出格式设置为 TI-TXT:

    构建工程、然后在 Debug 文件夹中找到.txt 文件:

    以下是该文件的细分:

    @41c00000
    00 00 00 04 BB AA BB AA BB AA BB AA FF FF FF FF 
    FF FF FF FF BB AA BB AA BB AA BB AA FF FF BB AA 
    BB AA BB AA FF FF FF FF FF FF FF FF FF FF FF FF 
    FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
    FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
    FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
    FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
    FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
    FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
    FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
    FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
    FF FF FF FF D0 7F FA 1A 
    @41c00100
    00 00 00 04 16 02 15 02 01 03 02 03 A8 12 FF FF 
    AF 96 13 76 0F 72 63 5F BD B4 4A 5A 0A 63 C3 9F 
    12 AF 30 F9 50 A6 EE 5C 97 1B E1 88 E8 9C 40 51 
    FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
    FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
    FF FF 48 00 95 8C 15 1F 

    如果您想从头开始创建文件、默认值也可以在 TRM 的寄存器部分中定义。

    BCR 和 BSL 寄存器数据是您需要对器件进行编程的数据、以将默认的 BCR 和 BSL 值填充到器件中。

    此致、

    Owen

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

    尊敬的 Owen:

    感谢您提供详细的说明和建议的恢复程序。

    很遗憾、由于机密性限制、我无法共享应用程序代码。 但是、我可以描述该应用正在执行的操作。

    应用相对简单:

    • 使用 一个 I2C 外设/通道 进行通信
    • 将 一个 GPIO 引脚配置为输出
    • 我没有特意修改 NONMAIN 存储器、禁用 SWD 引脚、禁用 SW-DP 访问或对调试相关设置进行任何更改

    关于问题发生前的事件、 当 电路板突然断电时、我积极地在调试模式下工作。 电源恢复后、我无法再对设备进行编程或与设备通信、此后问题一直存在。

    在发生此事件之前、我能够成功地对器件进行编程和调试、而不会出现任何问题。

    我需要一些时间来执行 您建议的 BSL 恢复和恢复出厂设置步骤。 完成后、我将分享结果和观察结果。

    再次感谢您的持续支持。

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

    尊敬的 S D:

    感谢您提供更多详细信息。 如果器件已完全擦除、包含 NONMAIN 并且器件断电、则会导致“无效“引导配置、并将器件置于最高安全状态(锁定)。 如果是这种情况、则器件很遗憾不可恢复。

    请告诉我、您是否能够通过上述步骤恢复器件、或者您是否能够在任何时候获得器件诊断读取值。

    此致、

    Owen