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.

[参考译文] MSPM0L1305:不带 XDS110的恢复出厂设置的 DSSM 命令

Guru**** 2337870 points
Other Parts Discussed in Thread: MSPM0L1305, SEGGER
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1425247/mspm0l1305-dssm-commands-to-factory-reset-without-xds110

器件型号:MSPM0L1305
主题中讨论的其他器件: SEGGER

工具与软件:

您好!

 几年来、我们一直在产品上使用 MSPM0L1305、现在已经添加了通过非主区域锁定器件的功能。 在开发过程中、我们使用 XDS110对器件进行批量擦除/恢复出厂设置、以便能够再次对其进行编程。

在生产环境中、我们使用的 Segger JLink 似乎无法执行解锁功能。 我们可以看到应该可以通过 SWD 使用 DSSM 命令、但我们找不到任何相关文档。

是否可以获得一些有关如何使用 DSSM 命令在没有 XDS110的情况下对器件进行出厂复位的文档? 或者还可以采取其他措施吗?

此致
Mohammad

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

    尊敬的 Mohamad:

    请参阅此 JLinkScript  通过 Segger 工具链执行复位。

    e2e.ti.com/.../Factory_5F00_reset.JLinkScript 

    谢谢!

    Henry Nguyen

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

    您好、Henry:

    感谢您的答复。 我已经尝试了一点点的一切,但它似乎不起作用。 我已经尝试添加一些"JLINK_SYS_REPORT1 "来进行尝试和调试、它首先运行脚本、但我们没有收到 "Command successfully sended"。

    我可以看到"SECAP_rxctl_read"、"SECAP_rxctl_read 和 SECAP_ctl_mask"以及"SECAP_rxctl_read 和 SECAP_txctl_transmit_full_mask"全部为"0x0"。

    我缺少什么信息或是否有其他可用于进一步调试的信息?

    这里是它说的:

    C:\Users\"C:\Program Files\SEGGER\JLink_V798i\JLink.exe"-JlinkScriptFile "C:\CCM_resources\Firmware\Scripts\Factory_reset。 JLinkScript"
    SEGGER J-Link Commander V7.98i (编译于2024年9月18日15:51:27)
    DLL 版本 V7.98i、编译时间:2024年9月18日15:50:31

    通过 USB...O.K.连接到 J-Link
    固件:J-Link V12编译日期:2024年8月22日13:27:55
    硬件版本:V12.00
    J-Link 正常运行时间(自启动以来):0D 01h 27m 36s
    S/N: 822006762.
    许可证:gdb
    USB 速度模式:高速(480MBit/s)
    VTREF=3.283V


    键入"connect"以建立目标连接、'?' 以获取帮助
    J-Link>连接
    请指定器件/内核。 :MSPM0L1305
    键入"?" 用于选择对话框
    器件>
    请指定目标接口:
    j) JTAG (默认)
    S) SWD
    t) cJTAG
    TIF>SWD
    指定目标接口速度[kHz]。 :4000 kHz
    速度>
    选择器件"MSPM0L1305"。


    通过 SWD 连接到目标
    InitTarget()开始
    开始顺序
    InitTarget ()结束-花了201ms
    已找到 ID 为0x6BA02477的 SW-DP
    DPIDR:0x6BA02477
    CoreSight SoC-400或更早版本
    扫描 AP 地图以查找所有可用 AP
    AP[0]:已停止 AP 扫描、因为已到达 AP 映射的末尾
    通过 AP 映射迭代以查找要使用的 AHB-AP
    连接到 CPU 失败。 复位时正在执行连接。
    DPIDR:0x6BA02477
    CoreSight SoC-400或更早版本
    扫描 AP 地图以查找所有可用 AP
    AP[0]:已停止 AP 扫描、因为已到达 AP 映射的末尾
    通过 AP 映射迭代以查找要使用的 AHB-AP
    无法在 Coresight 设置中找到内核
    InitTarget()开始
    开始顺序
    InitTarget ()结束-花了204ms
    已找到 ID 为0x6BA02477的 SW-DP
    DPIDR:0x6BA02477
    CoreSight SoC-400或更早版本
    扫描 AP 地图以查找所有可用 AP
    AP[0]:已停止 AP 扫描、因为已到达 AP 映射的末尾
    通过 AP 映射迭代以查找要使用的 AHB-AP
    连接到 CPU 失败。 复位时正在执行连接。
    DPIDR:0x6BA02477
    CoreSight SoC-400或更早版本
    扫描 AP 地图以查找所有可用 AP
    AP[0]:已停止 AP 扫描、因为已到达 AP 映射的末尾
    通过 AP 映射迭代以查找要使用的 AHB-AP
    无法在 Coresight 设置中找到内核
    发生错误:无法连接到目标设备。
    有关故障排除步骤、请访问 wiki.segger.com/J-Link_Troubleshooting
    J-Link>

    此致
    Mohammad

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

    你好、Mohammad、

    为了确保 您已连接 nRST 线路? 如果您这么做、您是否能够探测 nRST 线路以确保它正确切换?

    要执行 DSSM 命令、要求器件 执行 nRST 切换、以便引导代码可以再次运行。

    谢谢!

    Henry Nguyen

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

    您好、Henry:

    他们已经移动了设置、但我明天要使用示波器去那里、并确保 nRST 正确变为低电平。
    我已多次擦除/编程此单元、就在我尝试启用锁定的新固件之前。 nRST 应正确接线、但可能始终有一些东西。 我仍然可以对未锁定(它在固定装置中)的 PCB 进行编程。

    对于未锁定的设备、其外观如所示:

    C:\Users\"C:\Program Files\SEGGER\JLink_V798i\JLink.exe"-JlinkScriptFile "C:\CCM_resources\Firmware\Scripts\Factory_reset。 JLinkScript"
    SEGGER J-Link Commander V7.98i (编译于2024年9月18日15:51:27)
    DLL 版本 V7.98i、编译时间:2024年9月18日15:50:31

    通过 USB...O.K.连接到 J-Link
    固件:J-Link V12编译日期:2024年8月22日13:27:55
    硬件版本:V12.00
    J-Link 正常运行时间(自启动以来):0d 00h 48m 22s
    S/N: 822006762.
    许可证:gdb
    USB 速度模式:高速(480MBit/s)
    VTREF=3.294V


    键入"connect"以建立目标连接、'?' 以获取帮助
    J-Link>连接
    请指定器件/内核。 :MSPM0L1305
    键入"?" 用于选择对话框
    器件>
    请指定目标接口:
    j) JTAG (默认)
    S) SWD
    t) cJTAG
    tif>
    指定目标接口速度[kHz]。 :4000 kHz
    速度>
    选择器件"MSPM0L1305"。


    通过 SWD 连接到目标
    InitTarget()开始
    开始顺序
    已成功发送命令
    InitTarget ()结束-花了207ms
    已找到 ID 为0x6BA02477的 SW-DP
    DPIDR:0x6BA02477
    CoreSight SoC-400或更早版本
    扫描 AP 地图以查找所有可用 AP
    AP[0]:已停止 AP 扫描、因为似乎已到达 AP 映射的末尾
    通过 AP 映射迭代以查找要使用的 AHB-AP
    连接到 CPU 失败。 复位时正在执行连接。
    DPIDR:0x6BA02477
    CoreSight SoC-400或更早版本
    扫描 AP 地图以查找所有可用 AP
    AP[0]:已停止 AP 扫描、因为已到达 AP 映射的末尾
    通过 AP 映射迭代以查找要使用的 AHB-AP
    无法在 Coresight 设置中找到内核
    InitTarget()开始
    开始顺序
    已成功发送命令
    InitTarget ()结束-花了202ms
    已找到 ID 为0x6BA02477的 SW-DP
    DPIDR:0x6BA02477
    CoreSight SoC-400或更早版本
    扫描 AP 地图以查找所有可用 AP
    AP[5]:已停止 AP 扫描、因为已到达 AP 地图的末尾
    AP[0]:AHB-AP (IDR:0x84770001、ADDR:0x00000000)
    AP[1]:MEM-AP (IDR:0x002E0001、ADDR:0x01000000)
    AP[2]:JTAG-AP (IDR:0x002E0000、ADDR:0x02000000)
    AP[3]:MEM-AP (IDR:0x002E0003、ADDR:0x03000000)
    AP[4]:MEM-AP (IDR:0x002E0002、ADDR:0x04000000)
    通过 AP 映射迭代以查找要使用的 AHB-AP
    AP[0]:找到内核
    AP[0]:AHB-AP ROM 基地址:0xF0000000
    CPUID 寄存器:0x410CC601。 标准实现方代码:0x41 (ARM)
    找到 Cortex-M0 r0p1、小端字节序。
    FPUnit:4个代码(BP)插槽和0个文字插槽
    CoreSight 组件:
    ROMTbl[0]@ F0000000
    [0][0]:E00FF000 CID B105100D PID 000BB4C0 ROM 表
    ROMTbl[1]@ E00FF000
    [1][0]:E000E000 CID B105E00D PID 000BB008 SCS
    [1][1]:E0001000 CID B105E00D PID 000BB00A DWT
    [1][2]:E0002000 CID B105E00D PID 000BB00B FPB
    内存区域:
    区域:"默认"说明:默认访问模式
    Cortex-M0已识别。
    J-Link>

    此致
    Mohammad

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

    谢谢您告诉我 Mohammad、 我还有一个 简短的问题。 当您说锁定时、您是指修改了 NONMAIN 来锁定器件?

    如果是这种情况、您能否告诉我您为了锁定器件而进行了哪些修改?

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

    您好、Henry:

    是的、它通过 NONMAIN 区域锁定。 我已将问题转交给软件部门、但我不确定他们今天还是明天会回答。 他们对 NONMAIN 进行了修改、测试了它可以与 XDS110取消组合。 我只有解锁和锁定固件的十六进制文件。

    此致
    Mohammad

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

    您好、Henry:

    这里是我们软件部门的答案。 我可以看到有一个用于输入密码的函数。 在完全恢复出厂设置时是否也需要此操作? 我将简要介绍一下 NRST 信号。

    • SWDP_MODE ->启用
    • SWDLOCKPOLICY ->已通过密码启用
    • BSL_PIN_INVOKE ->已禁用
    • TI_FA_MODE ->已启用
    • BSL_MODE ->已禁用
    • FASTBOOTMODE ->已禁用
    • factoryResetMode -> Enabled
    • MassEraseMode ->已启用

    我们的理解是、该器件被视为具有自定义限制的安全级别1。 说明非常接近。

    SW-DP 策略->已启用
    应用调试->使用密码启用
    批量擦除->已启用
    恢复出厂设置->已启用
    TI FA ->已启用

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

    您好、Henry:

    我现在有一个示波器、当尝试通信时、它会降至0V。 我可以看到低电平的时间与脚本中的超时相对应。 如果我更改延迟、低延迟时间也会相应地变化。  重置 signal.png

    此致
    Mohammad

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

    嗨、Mohamad、

    您能否参考这些更新后的脚本? 修改后、如果是首次尝试 fails.e2e.ti.com/.../DSSM_5F00_Command.JLinkScripte2e.ti.com/.../DSSM_5F00_Command_5F00_Pass.JLinkScript、则会再尝试几次

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

    您好、Henry:

    首先、谢谢大家。 尝试2到3次后、它使用的是"_DAP_FACTORY_RESET"而不是"_DAP_MASS_ERASE"。 我们可以探究仍然需要2至3次尝试的情况。 我们使用" DSSM_Command。 JLink "因为我们尚未设置锁定、所以在根据我们的软件部门进行恢复出厂设置时、应该不需要设置锁定。

    以下是我们尝试过的一些要点:

    1)所有3个单位,我一直在工作之前的新脚本,不工作新脚本,并似乎"死"。 该应用程序未启动、因此已被删除、但新脚本也不起作用。
    -最后几天我尝试了不同的事情在" Factory_Reset . JLinkScript"。 我试图更改为"_DAP_FACTORY_RESET"、但确实尝试增加了1次重试、但当时可能是因为它们已损坏。
    " Factory_Reset。 如果我将其更改为 "_DAP_FACTORY_RESET"并尝试2次、JLinkScript"也可以在新装置上运行。

    2)今天我尝试了3个新的单元。 我已尝试在工厂重新设置它们并锁定它们多次、它始终可以解锁它们。 有时需要2次尝试、有时需要3次尝试。

    感谢您抽出宝贵时间观看此视频。

    此致
    Mohammad