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.

[参考译文] MSPM0L1106:如何在 UniFlash 中输入密码。

Guru**** 2511415 points
Other Parts Discussed in Thread: MSPM0L1306, UNIFLASH, MSPM0L1106, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1555916/mspm0l1106-how-to-input-the-passwords-in-uniflash

器件型号:MSPM0L1106
主题中讨论的其他器件:UNIFLASH、MSPM0L1306、 SYSCONFIG

工具/软件:

尊敬的团队:

我的 UniFlash 版本为 9.0.0.5086。

使用密码启用调试锁定、恢复出厂设置和批量擦除后、如何设置密码以便 UniFlash 可以执行固件更新、恢复出厂设置和批量擦除?

此外、请提供帮助来建议如何在 Code Composer Studio 中输入密码以便进行调试。

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

    您好 Alan、

    在 Uniflash 中、参考 使用 UniFlash 的 MSP430、MSP432、CC13xx、CC26xx、CC32xx MCU 编程引导加载程序中的第 5 节

    您使用的是哪个版本的 CCS?

    您是否尝试连接到器件进行调试?

    此致、

    Owen

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

    尊敬的 Owen:

    感谢您的支持和信息。

    我可以在使用 UniFlash 启用密码的情况下进行 BSL 升级。

    我的问题是关于密码启用在以下:

    • 调试锁定
    • 恢复出厂设置
    • 批量擦除

    我的 Code Composer Studio 版本为 20.1.1.8_1.7.1。

    我使用的是 MSPM0L1306 Launchpad 进行测试。 启用调试锁定密码后、无法对其进行调试。

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

    您好 Alan、

    根据您设置安全级别的方式、您将无法访问特定功能。 请参阅下面的技术参考手册:

    要使用密码调试器件、请执行以下操作:

    1. 导航至 .ccxml 文件并将其打开
    2. 在打开的窗口的左下方、点击 高级
    3. 点击该器件、在本例中: MSPM0L1106
    4. 在右侧、您应该会看到:
    5. 填写密码
    6. 保存文件
    7. 您现在应该能够调试器件、但如果没有调试、请尝试执行以下步骤
    8. 右键单击 .ccxml 并点击 启动无工程调试
    9. 在顶部菜单栏中、点击 脚本
    10. 增加 MSPM0L1106_Commands
    11. 单击 Authentication_Auto Mailbox_Debug

    仅当您已正确配置安全设置以允许通过密码进行调试访问时、这些步骤才有效。

    此致、

    Owen

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

    尊敬的 Owen:

    感谢您的信息和支持。

    根据提供的有关 SWD 安全级别 1 的信息、这只是一个示例。 根据表 1-4。 通用安全级别:

    从该表中、可以使用密码来启用批量擦除和恢复出厂设置。 因此、我认为应该在某个位置输入密码以执行相应操作。

    对于使用密码进行调试、我尝试了提供的两种方法、它们都不起作用。

    下面是设备中 BCR 配置数据的前几个字节:

    在 CCS 中、我按如下所示的两种顺序尝试了密码、但它们不起作用。 您能为我提供更多的建议吗?

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

    您好 Alan、  

    很抱歉、我引用了错误的表格。 您是如何配置密码的? 您是否在 SysConfig 的 Configuration NVM 部分中设置了它? 您能告诉我您配置的设置是什么吗?

    所以我认为应该输入密码来执行相应的操作。

    密码应输入到.ccxml 文件中。

    对于其他操作(例如批量擦除和恢复出厂设置)、它们也与 Scripts:

    另请注意、如果您能够读取存储器中的 BCRConfig 数据并看到密码、则表示您已成功连接到器件。

    我看到了以下内容:

    执行密码身份验证时、您是否会看到以下内容:

    此致、

    Owen

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

    尊敬的 Owen:

    我自己也编写了一个例程、在系统启动时自行更新 NVM NONMAIN 存储器。 BCRConfig 字节转储在我上面的注释中。 让我们重点介绍一下您提供的方法和下面的测试。 然后我们回到我的问题上。

    我按照您的方法在下面的 SYSCFG 文件中进行更改:

    1.从内存中,将 SWD 密码设置为内存,但当我的软件从设备转储内存时,它仍然没有被修改。

    2.当我在 ccxml 中输入错误的密码时,调试过程仍然可以启动。

    3.在调试过程的开始,我不能得到下面的输出。

    我刚刚得到了最后一句“存储器映射初始化完成“。

    4、这是最重要的一点。 启用 BCR 配置后、UniFlash 在通过引导加载程序下载到 DUT 时生成的十六进制在上出现错误。

    在上面的测试期间、新的 BCR 配置似乎并未真正写入 DUT。 请帮助提供更多信息和测试的分步操作。

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

    嗨、Alan、

    您是否在恢复出厂设置器件上进行测试?  执行此测试时、需要确保播放中没有安全设置。   

    接下来、当您在 SysConfig 中更新 BCR 时、需要进入 Project -> Debug -> Flash Memory 设置、并将其更新为“Erase Main and Nonmain“。   此设置旁边将显示一条警告、其含义是: 如果您擦除 Nonmain 并且未使用正确的设置成功地对其重新编程、则将默认为最高安全设置、这可能会使设备永久砖化。  第一次使用 Nonmain 设置时、通常会将一个或两个设备砖化、因此我可以方便地备份一些备份。  

    非主设置仅在复位或下电上电时应用。  因此、在对器件进行编程/调试后、只要保持连接、就可以继续查看存储器、等等。  

    至于您的第一个问题、我认为 CCS 和 Uniflash 仅支持密码调试。  我得检查一下。   我们有一个 Web 工具、可用于基于密码的批量擦除和恢复出厂设置。  https://dev.ti.com/gallery/view/TIMSPGC/MSPM0_Factory_Reset_Tool /ver/1.0.2/ 

    谢谢、

    JD  

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

    尊敬的 JD:

    感谢您提供 有关此票证和支持的详细信息。

    是的、一开始我在没有任何安全设置的设备上启动。 我从固件本身更新了 BCR 和 BSL 配置、而不是在 CCS 中使用 SysConfig。 在另一个票证中、我正在使用 Owen 处理此问题、我发现在 CCS 中启用 SysConfig 不会物理更新 NONMAIN 内存、但 CCS 可以在调试会话中显示更新后的内存内容。

    从您的信息来看、这是否意味着没有用于支持批量擦除和恢复出厂设置密码的工具、我是正确的吗?

    如果是这种情况、您能否确认只有在建立 SWD 会话时才可以使用批量擦除和恢复出厂设置?

    仅供参考、在 BCR 配置中设置了密码并启用了调试锁定后、我仍然无法建立 SWD 会话。

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

    尊敬的 JD:

    此外,我刚刚尝试了这个工具, https://dev.ti.com/gallery/view/TIMSPGC/MSPM0_Factory_Reset_Tool / ver/1.0.2. 

    我无法使用它来连接我的设备。 我使用浏览器 Chrome 和 JLink 进行连接。 未启用任何密码、我已使用 CCS 验证 JLink 连接、它可以正常连接。

    问题将是什么?

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

    您好 Alan、

    更改密码后、您是否能够成功刷写器件? 刷写后、是否对电路板进行了下电上电?

    如何卸载内存? 直接从 CCS 还是 Uniflash 执行此操作?

    当我在 ccxml 中输入错误的密码时、仍然可以启动调试过程。

    更新.ccxml 文件后、您是否执行了密码身份验证? 在 CCS 中、您可以通过右键点击 TargetConfigs > Scripts > MSPM0L1106_Commands > Mailbox_Debug Authentication_Auto 下的.ccxml 文件来执行此操作。 这样会更新发送到器件的密码、您将无法使用错误的密码获得调试访问权限。

    在调试过程开始时、我无法获得以下输出。

    我发送的屏幕截图不是尝试调试器件。 屏幕截图是执行密码验证脚本的结果。

    这是最重要的一点。 启用 BCR 配置后、UniFlash 在通过引导加载程序下载到 DUT 时生成的十六进制在其上有错误。

    是否允许擦除 NONMAIN?

    此致、

    Owen

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

    您好 Alan、

    我相信您可以使用 Uniflash 和 CCS 来使用密码执行批量擦除和使用密码恢复出厂设置。 请参阅以下屏幕截图:

    在 Uniflash 的屏幕截图中、确保选择了擦除 NONMAIN 存储器的选项。 也可以在 CCS 的工程属性中配置此配置。 如果您看不到存储器的变化、可以参考这里的说明。

    您能否提供更详细的信息、说明为了重现无法通过 SWD 引脚访问器件而执行的具体步骤? 您是否更改了密码? 是否有任何错误消息?

    此致、

    Owen

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

    尊敬的 Owen:

    更改密码(调试锁定)后、我尝试从 CCS 和 Uniflash 引导加载程序刷写器件。 之后、设备重新启动。 软件启动时、存储器将被读取并输出到 UART、我已验证 BCR 和 BSL 配置的内容是否正确。

    是的、我做到了。 选择 Mailbox_Debug Authentication_Auto 后、没有任何反应。 如果没有密码、调试会话将在 main() 处暂停。

    是的、我了解这一点、但我没有得到这种身份验证操作。

    是的、我没有将此配置从默认 BCR 配置进行修改。 当 CCS 通过 SysConfig 并修改了 BCR 配置生成的代码时、系统会提示 UniFlash 错误。

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

    尊敬的 Owen:

    您能告诉我在哪里输入批量擦除和恢复出厂设置密码吗? 我尝试了您突出显示的按钮、它不会提示输入密码。

    对于我的测试步骤:

    1.预处理:

    • 固件由 CCS 构建、支持十六进制文件输出。 BCR 配置是 syscfg 中的默认设置。
    • 编译后的十六进制输出文件可通过引导加载程序和 JLink(通过 Uniflash)下载。 可以在 Uniflash 中执行批量擦除和恢复出厂设置。
    • CCS 可以通过 JLink 进行调试。

    2.基于上述内容、我根据  CCS 提供的示例代码提供的 gBCRConfig 和 gBSLConfig 编写了一个例程。

    3.我在启用密码的情况下修改了 BSL、它在 UniFlash 上工作。 在这里、我想说明 NONMAIN 存储器访问正确。

    4.类似地,我启用批量擦除和恢复出厂设置密码,操作失败。 是预期结果、因为我无法在 UniFlash 中找到输入密码的方法。 (RMK:无密码启用调试锁定。)

    5.当我在启用调试锁定密码的情况下进行测试时、UniFlash 和 CCS 都无法工作、甚至我在 ccxml 中修改了密码。

    对于通过 CCS 到 syscfg 进行的修改、我按照您提供的步骤操作、此工单中回复了结果。

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

    您好 Alan、

    密码应在您加载到 Uniflash 的.ccxml 文件中输入。

    您能否确认您的 NVM 配置设置是否具有 Debug Access、Factory Reset 和 Mass Erase All 在密码匹配时启用

    是的、我是这样做的。 选择 Mailbox_Debug Authentication_Auto 后、没有任何反应。 如果没有密码、调试会话将在 main() 处暂停。

    尝试在 CCS 中执行无工程调试会话。 为此、您可以右键点击.ccxml 文件并点击启动无工程。 然后按照相同的步骤执行该命令。

    以下是您之前发送的屏幕截图:

    在此屏幕截图中、请务必注意、您的密码与我之前使用的密码相反。 此外、第 4 个双字在技术上为 0x00FFEDD。

    如果上述任何操作都不起作用、请尝试以下操作:

    1. 在 CCS 中创建一个新的空工程。
    2. 在 SysConfig 文件中、启用 NVM 配置
    3. 启用 调试访问 恢复出厂设置 和/或 批量擦除 一方 密码匹配
    4. 为您选择的所有选项输入密码。 (使它们相同)。
    5. 转到“项目“ 工程属性 > 调试 > MSPM0 闪存设置 >选择 擦除主存储器和 NONMAIN 存储器(请参阅上面的警告) 选项。
    6. 打开。 ccxml 归档并输入密码。 ( 高级 >单击设备名称、即 MSPM0L1106 >在下 设备属性 输入与 SysConfig 中的完全相同的密码。
    7. 确保所有内容都已保存。
    8. 刷写器件。

    如果要继续使用 CCS:

    1. 右键单击。 ccxml 添加到工程
    2. 单击 启动无工程调试
    3. 单击 脚本 > MSPM0L1106_Commands
    4. 现在执行任何需要密码的命令。 (我建议使用手动选项。 这将提示您按下器件上的复位按钮或将复位线路拉至低电平)。

    如果要继续使用 Uniflash、请执行以下操作:

    1. 打开 Uniflash
    2. 向下滚动到底部至  从现有目标配置文件创建会话 然后按 选择
    3. 导航到包含先前更新的.ccxml 文件的文件路径。
    4. 现在尝试使用密码执行恢复出厂设置/批量擦除(建议使用手动选项)。

    此致、

    Owen