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.

[参考译文] MSPM0L1117:通过 DSSM 调用 BSL

Guru**** 2846810 points

Other Parts Discussed in Thread: UNIFLASH, MSPM0L1117

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1634545/mspm0l1117-invoking-bsl-via-dssm

器件型号: MSPM0L1117
Thread 中讨论的其他器件: UNIFLASH

在 SLAU887A MSPM0 引导加载程序用户指南中、内容如下:  

当调试接口可用时、引导加载程序调用命令可通过调试子系统 邮箱 (DSSM) 发送。  有关 DSSM 命令用法的更多详细信息、请参阅 MSPM0x_DSSM Technical_Reference_Manual 命令部分。

在 SLAU847E MSPM0 L 系列 32MHz 微控制器技术手册(2025 年 5 月)中、我只列出 5 个 DSSM 命令: 1.) 恢复出厂设置、2.) 批量擦除、3.) 密码身份验证、4.) 数据交换、5.) 等待调试。  我不知道如何使用这些命令来调用 BSL。  是否有人知道如何通过 DSSM 调用 BSL?  什么是我的缺失?

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

    您好、

    据我所知、没有用于调用 BSL 的 DSSM 命令。 让我进行内部检查并向您提供反馈。

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

    您好、

    BSL 的 DSSM 值为 0x0108。  但我认为、在我们的工具中、我们默认不支持此功能、我不确定原因。 如果您需要发送此 DSSM、请自行修改和写入。  

    此致、
    Zoey

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

    我尝试了 0x0108、但没有成功。  我认为应使用 SEC-AP 发送此命令。  IT 工作是否需要任何特定的状态或安全策略?  我现在正在使用安全策略级别 0、并在复位后使用 SEGGER J-Link 调试器直接发送命令。  启用 DSSM BSL 命令是否需要任何身份验证?  您的消息中不清楚您的工具是否支持 0x0108、以及客户是否可以选择使用它。  “自己写“是什么意思?

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

    您好、

    如果将 XDS110 调试器与 CCS 一起使用。 在 CCS 中、有一个用于恢复出厂设置、密码发送等操作的脚本... 但没有为 BSL 调用编写脚本、在这种情况下、您可以修改脚本并发送 0x0108 来调用 BSL。  

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

    我使用 XDS110 调试器、但不熟悉 CCS 脚本功能。  我主要将 Uniflash 与 XDS110 搭配使用。  Uniflash 具有恢复出厂设置、批量擦除等按钮、 我认为可以正确运行 GEL 文件?  您是否有要共享的示例 GEL 文件、我可以编辑该文件?  然后、我可以在我的 Uniflash 目录中覆盖它、例如、恢复出厂设置按钮实际上会执行用于 BSL 调用的 DSSM 命令。  我自己会检索 GEL 文件、但对我来说不清楚 Uniflash 安装程序中哪个 GEL 文件实际运行的是恢复出厂设置按钮。  向您举一个例子会大有帮助。

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

    您好、

    这是我在 CCS directorye2e.ti.com/.../mspm0l1117.gele2e.ti.com/.../mspm0_5F00_cs_5F00_dap_5F00_init.gel 中找到的内容。  

    以下文档(基于软件实现受密码保护的调试)在第 4.2 节  “访问锁定的 MCU “步骤 1 和 2 中说明了如何在旧版本的 CCS(网络脚本)中运行自定义 GEL 文件。 我只是在无法在 Uniflash 中运行自定义脚本的情况下共享此内容。

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

    我能够假冒 Uniflash、因此 MassErase 按钮会发送 0x0108 命令。  我知道修改后的文件正在运行、因为可以在 Uniflash 命令窗口中看到我的文本输出。  它显示命令成功、但我无法看到 BSL 正在运行。  我尝试了手动(之后不重置)和自动(之后重置)——两者都不起作用。  如果你没有任何其他建议尝试,我想我准备放弃.  非常感谢您的帮助!  这是从 Uniflash 目录中的 mspm0_cs_dap_init.gel 摘录的代码、该目录在按下 MassErase GUI 按钮时运行。  BTW、有关实现基于软件的密码保护调试的出色应用手册。  看起来你是作者。  这对我来说非常有帮助、因为我正在研究 MSPM0L1117 的网络安全项目。

    <excerpt from mspm0_cs_dap_init.gel>
    .
    .
    .
    #define DSSM_BC_MASS_ERASE                              (0x0108U)
    .
    .
    .
    /*
     * Called from the device specific GEL file to force Factory Reset
     */
    GEL_DAPInit_remoteMassErase(autoReset)
    {
        GEL_TextOut("Initiating Device BSL Invoke\n");
        'GEL'::gDAPSecAPDataLen = 0;
        GEL_DAPInit_remoteSECAPCommand (DSSM_BC_MASS_ERASE, 0);
    }
    .
    .
    .

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

    您好、

    我已经使用 Uniflash 进行了检查。 它应该是可行的。

    我只更改 DSSM_bC_MASS_ERASE 为 0x0108、其他保持不变。

    然后按批量擦除手册

    然后按下 LP 中的 RESET 按钮、即可执行批量擦除命令。

    现在、MCU 已进入 BSL 模式:

    此致、

    Zoey

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

    顺便说一句, 谢谢你的赞美。 本文档主要面向缺乏基于硬件的功能的低成本 MSPM0 系列。 我认为 MSPM0L1117 提供更广泛的安全功能、包括使用密码禁用调试端口的功能。