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.

[参考译文] MSPM0G3519:Uniflash 显示:多个文件加载失败

Guru**** 2943430 points

Other Parts Discussed in Thread: UNIFLASH, MSPM0G3519, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1647869/mspm0g3519-uniflash-showing-multiple-files-load-fail

器件型号: MSPM0G3519
主题中讨论的其他部分: UNIFLASHSYSCONFIG

您好 TI

控制台显示错误为: [error] Cortex-M0P:文件加载程序:存储器写入失败:闪存编程器:扇区擦除地址无效!  

但在我点击错误框的交叉掩码后、代码会正常闪烁、但会显示上述错误。 原因可能是什么?

我正在尝试上载地址为 0x00000000 的引导加载程序和地址为 0x00018000 的应用程序。

 

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

    您好 Prajesh、

    我不确定、但有几件事需要检查。   首先、请确保图像不会超过圈。 第二步、 检查 Uniflash 中的“设置“选项卡。 向下滚动一点、那里应该有一个擦除设置菜单。  检查它的配置是否适合您尝试加载的内容。   

    最后,在您的图像的边缘,我看到 2 Binarys 是一个不是作为二进制列,并设置为自动作为起始地址。  我从未尝试混合映像类型、因此不确定 Uniflash 是否喜欢。   

    谢谢、

    JD  

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

    谢谢 JD

    我还面临一个问题。 即  

    我正在使用 factory_reset.bat 文件脚本恢复电路板 mspm0g3519 的出厂设置

    但当我刷写安全固件时、此脚本无法正常工作、当我在没有安全的情况下刷写正常固件时、此脚本会正常工作、并且电路板正在恢复出厂设置。

    此外、如果我使用 Uniflash GUI 工具并自动恢复出厂设置、则适用于安全固件和非安全固件、能够正确恢复出厂设置  

    我必须在脚本中进行哪些更改、才能实现安全固件?

    我在运行.bat 文件后获得此信息


    DSLite 版本 20.4.0.3924
    配置调试器(首次启动时可能需要几分钟)...
    正在初始化注册数据库...
    正在初始化:CS_DAP_0
    执行启动脚本:CS_DAP_0
    正在初始化:Cortex-M0P
    执行启动脚本:Cortex-M0P
    正在初始化:sec_ap
    执行启动脚本:sec_AP
    正在连接...
    错误:CORTEX_M0P:连接到目标时出错:连接到 MSPM0 内核失败。 可能的根本原因:1) 使用密码禁用或启用了 NONMAIN 内的调试访问。 2) 外设配置错误(例如看门狗或时钟不正确)。 要查看问题的更详细诊断、请按下“读取引导诊断“按钮。
    失败:在“Cortex-M0P“上中止操作

    =========================================================================
    恢复出厂设置失败! (退出代码:1)
    =========================================================================

    恢复出厂设置期间发生错误。 有关详细信息、请参阅上面的输出。

    按任意键继续。 。 。

    @echo off
    setlocal
    
    REM =========================================================================
    REM Factory Reset Script for MSPM0G3519
    REM =========================================================================
    REM This script performs a factory reset on the MSPM0G3519 device using
    REM TI UniFlash DSLite command line tool.
    REM
    REM Usage: factory_reset_MSPM0G3519.bat [-y]
    REM   -y  Skip user confirmation prompts (for automated test systems)
    REM =========================================================================
    
    REM Parse arguments
    set AUTO_YES=0
    if /i "%~1"=="-y" set AUTO_YES=1
    
    echo =========================================================================
    echo MSPM0G3519 Factory Reset Script
    echo =========================================================================
    echo.
    echo This script will perform a factory reset on your MSPM0G3519 device.
    echo.
    echo WARNING: This will erase all flash memory and restore factory settings!
    echo          All application code and data will be permanently lost!
    echo.
    
    if "%AUTO_YES%"=="0" (
        echo Press Ctrl+C to cancel, or
        pause
    )
    
    REM Path to this batch script
    set SCRIPT_PATH=%~dp0
    
    REM Path to DSLite executable
    set DSLITE_EXE=%SCRIPT_PATH%ccs_base\DebugServer\bin\DSLite.exe
    
    REM Path to configuration file
    set CCXML_CONFIG=%SCRIPT_PATH%user_files\configs\MSPM0G3519.ccxml
    
    REM Check if DSLite executable exists
    if not exist "%DSLITE_EXE%" (
        echo ERROR: DSLite executable not found at:
        echo %DSLITE_EXE%
        echo.
        echo Please ensure UniFlash is properly installed.
        if "%AUTO_YES%"=="0" pause
        exit /b 1
    )
    
    REM Check if configuration file exists
    if not exist "%CCXML_CONFIG%" (
        echo ERROR: Configuration file not found at:
        echo %CCXML_CONFIG%
        echo.
        echo Please ensure the MSPM0G3519.ccxml file exists.
        if "%AUTO_YES%"=="0" pause
        exit /b 1
    )
    
    echo.
    echo Step 1: Connecting to device...
    echo.
    
    REM Perform Automatic Factory Reset
    echo Executing Automatic Factory Reset...
    echo Command: "%DSLITE_EXE%" flash --config="%CCXML_CONFIG%" --post-flash-device-cmd=AutomaticFactoryReset -e
    echo.
    
    "%DSLITE_EXE%" flash --config="%CCXML_CONFIG%" --post-flash-device-cmd=AutomaticFactoryReset -e
    set DSLITE_EXIT=%ERRORLEVEL%
    
    echo.
    if %DSLITE_EXIT% neq 0 (
        echo =========================================================================
        echo Factory Reset FAILED! ^(exit code: %DSLITE_EXIT%^)
        echo =========================================================================
        echo.
        echo An error occurred during the factory reset. See output above for details.
        echo.
        if "%AUTO_YES%"=="0" pause
        exit /b %DSLITE_EXIT%
    ) else (
        echo =========================================================================
        echo Factory Reset Completed Successfully!
        echo =========================================================================
        echo.
        echo The MSPM0G3519 device has been reset to factory defaults.
        echo All flash memory has been erased.
        echo.
        if "%AUTO_YES%"=="0" pause
        exit /b 0
    )

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

    嗨、Prajesh、

    对于安全固件、您应用了哪种安全设置?  是否禁用了调试?  您是否正在禁用恢复出厂设置?   

    Uniflash 的恢复出厂设置是否确实可以正常工作?  您是否尝试过重新编程或连接到随后恢复出厂设置的安全器件?   

    我问的只是因为在 CCS/Uniflash 中、恢复出厂设置命令实际上并不会给出失败消息。  恢复出厂设置是 DSSM 命令、因此发生的是编程器将 DSSM 命令写入 JTAG 邮箱并复位器件。  器件随后读取该命令、并且是否恢复出厂设置。  没有手动晃动回编程器、因此在 Uniflash 中、它通常显示为“恢复出厂设置完成“、因为它发出了命令和复位、但实际上并不知道它是否有效。  直到您尝试重新连接后才会出现这种情况。   

    该脚本看起来在执行恢复出厂设置命令后尝试连接、似乎无法正常工作、因此它提供了“恢复出厂设置失败“命令。   

    谢谢、

    JD

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

    您好、

    感谢您的说明—关于基于 DSSM 的恢复出厂设置行为的合理说明。

    要回答您的问题:

    • 是的、安全固件配置启用了安全功能、但 调试未完全禁用
    • 在安全设置中启用恢复出厂设置(根据 SysConfig/NONMAIN 配置)。
    • 我正在使用DSLite带有 AutomaticFactoryReset 命令的 UniFlash CLI ()。

    通过我的测试:

    • 当器件已经处于非安全/出厂状态时、恢复出厂设置流程成功完成。
    • 对安全固件进行编程后、 在“CORTEX_M0P“连接阶段、在实际执行恢复出厂设置命令之前、CLI 会失败。
    • GUI UniFlash 能够在相同状态下成功执行出厂复位。

    我知道您认为 DSSM 命令没有直接握手、UniFlash 仅报告命令提交成功。 但是、在我的例子中、CLI 甚至在达到 DSSM 执行阶段之前就失败(在 Cortex 连接时失败)。

    因此问题似乎是:

    • 调试连接初始化期间 CLI 流程失败(Cortex-M0P 阶段)
    • 而 GUI 能够使用基于 SEC_AP 的备用流程触发恢复出厂设置

    请告诉我、是否有任何推荐的仅通过 CLI 的方法来强制执行基于 SEC_AP 的出厂复位流程。

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

    嗨、JD、根据我的上述重播给出的任何建议。

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

    您好 TI、您认为上述对话有任何更新吗?

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

    嗨、Prajesh、  

    很抱歉耽误你的时间。  感谢您提供更多信息。   

    Uniflash GUI 似乎遵循了正确的流程、而 CLI 实际上没有遵循正确的流程?  如果像您的情况一样锁定器件、则 Cortex-M0P 将始终失败、直到我们发出恢复出厂设置并切换复位线路。  

    正确的过程通常是将器件拉至复位状态、仅连接到 SEC-AP、向 DSSM 邮箱发出恢复出厂设置命令、最终释放复位、以便处理 DSSM 命令。  我假设这是 Uniflash GUI 执行的确切流程。   

    您能给我指一下您正在使用的批处理文件吗?  是否有 Uniflash 版本号?   

    这有点不同、但它有助于展示相关流程: 以下是此 E2E 底部的一些 JLink 恢复出厂设置脚本:  MSPM0L1305:无需 XDS110 即可恢复出厂设置的 DSSM 命令 

    谢谢、

    JD

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

    感谢您的解释。

    请在下面找到我们的批处理文件使用的命令:

    "%DSLITE_EXE%" flash --config="%CCXML_CONFIG%" --post-flash-device-cmd=AutomaticFactoryReset -e
    

    随附的批处理文件只是通过 AutomaticFactoryReset 闪存后命令调用 DSLite、并依靠 DSLite 来执行出厂重置序列。

    正在使用的 UniFlash 版本是。  版本: 9.4.0.5534

    bat 文件:

    e2e.ti.com/.../factory_5F00_reset_5F00_MSPM0G3519.zip