主题中讨论的其他器件:UNIFLASH、MSPM0L1306、 SYSCONFIG
工具/软件:
尊敬的团队:
我的 UniFlash 版本为 9.0.0.5086。
使用密码启用调试锁定、恢复出厂设置和批量擦除后、如何设置密码以便 UniFlash 可以执行固件更新、恢复出厂设置和批量擦除?
此外、请提供帮助来建议如何在 Code Composer Studio 中输入密码以便进行调试。
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.
工具/软件:
尊敬的团队:
我的 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、
根据您设置安全级别的方式、您将无法访问特定功能。 请参阅下面的技术参考手册:

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

仅当您已正确配置安全设置以允许通过密码进行调试访问时、这些步骤才有效。
此致、
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.预处理:
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。
如果上述任何操作都不起作用、请尝试以下操作:
如果要继续使用 CCS:
如果要继续使用 Uniflash、请执行以下操作:
此致、
Owen