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.

[参考译文] AM2634:Uniflash 错误"等待目标停止&quot 的超时;使用定制电路板上的 LP-XDS110

Guru**** 2534260 points
Other Parts Discussed in Thread: AM2634, LP-XDS110, UNIFLASH, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1554731/am2634-uniflash-error-timed-out-waiting-for-target-to-halt-using-lp-xds110-on-custom-board

器件型号:AM2634
Thread 中讨论的其他器件: LP-XDS110UNIFLASHSYSCONFIG

工具/软件:

您好 TI 支持团队:

我将 LP-XDS110 连接到定制 AM2634 板、无法使用 Uniflash 9.2.0 通过 JTAG 对 QSPI 编程。  以下是最后几行的输出:

... 
[IP、4:23:01 PM]
 [info] Cortex_R5_0:GEL 输出:***所有 2025年8月18日 时钟均已启用***
[MCU 2025年8月18日、4:23:01 PM] [info] Cortex_R5_0:AM2634
[INFO]  Cortex_R5_0:已选择的板:2025年8月18日
[CPU、4:23:01 PM] [info] Cortex_R5_0:GEL 输出:已在程序加载时通过 GEL 发出 2025年8月18日 复位(软复位)。
[Cortex 2025年8月18日、4:23:22 PM] 【错误】Cortex_R5_0:运行失败...
[MCU 2025年8月18日、4:23:22 PM] 【错误】Cortex_R5_0:文件加载程序:存储器写入失败:执行 uniflash.out 时等待目标停止超时
在最后一条[info]消息和[error]消息之间、Load Program 对话框会保持“0 of 32752 at 0x60080000“、显示大约 10 秒(在这种情况下,我只尝试刷写.mcelf;尝试刷写 SBL 会得到相同的结果)。
将同一 XDS-110 连接到我们的电路板后、我能够在 CCS 中调试代码、因此我认为 JTAG 连接正确。  我还可以通过串行端口将 RXD/TXD 连接到电路板的 UART 和闪存、而不会出现问题(尽管速度当然较慢,我必须来回更改引导模式,因此并不理想)。
我正在使用自定义的 sbl_jtag_uniflash 和 sbl_uart_uniflash 构建中、其中修改了其 syscfg 以与我们电路板上的闪存器件匹配。考虑到 UART 刷写正常、我相信该器件是正确的。  我还尝试为 JTAG uniflash 加载程序启用 UART 调试日志并看到  JTAG Uniflash 菜单 UART 与其 1、2、3、x 选项一起出现、这表示它正在识别闪存器件 并通过驱动程序初始化(我在执行此测试后关闭 UART、以防它干扰 JTAG 下载)。  是否可以使用自定义 uniflash 加载器构建来执行其他诊断?
有趣的是、如果我从命令行运行、我得到的输出看起来很成功、但实际上并不会执行任何刷写:
./dslite.sh --config AM2634-Q1.ccxml -e -s CustomFlashEnable=true -s FlasherCustomPath= -s FlasherCustomName=uniflash.out -s FlashVerboseMode=true -f bringup.mcelf 
...
Cortex_R5_0:GEL 输出:启用 CPTS 时钟 (250MHz)
Cortex_R5_0:GEL 输出:

***所有 IP 时钟均已启用***

信息:Cortex_R5_0:AM2634
INFO:Cortex_R5_0:Board Selected:CC
Cortex_R5_0:GEL 输出:已在程序加载时通过 GEL 发出 CPU 复位(软复位)。
加载程序:bringup.mcelf
正在准备...
已完成
将 PC 设置为入口点。
成功
最后几步表明它正在加载程序、是瞬时的、似乎没有效果、因为启动电路板会导致它运行闪存中已有的内容。  这是在 Mac OS 系统上、使用从 Uniflash GUI 导出的.ccxml 文件。
 
如果我能提供任何进一步的信息,请告诉我–谢谢!
- M. Fairman
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 M. Fairman

    感谢您的查询!!  

    根据我的理解、您使用自定义 QSPI 闪存、而不是 EVM 中存在的默认闪存、在这种情况下、您需要使用 SBL_QSPI 和中的自定义闪存 json 文件更新 SysConfig JTAG_uniflash

    1. C:\ti\mcu_plus_sdk_am263x_10_02_00_13\examples\drivers\boot\sbl_qspi
    2. C:\ti\mcu_plus_sdk_am263x_10_02_00_13\tools\flasher\JTAG_uniflash

    请按照以下步骤更新 example.syconfig

    1. 将这两个工程导入您的工作区
    2. 打开 example.sysconfig 文件
      1. 导航至“Flash"选项“选项卡并 更新“Flash Name“
      2. 单击 从 JSON 加载  按钮、然后选择 中的.json 文件
      3. MCU_PLUS_SDK 中的预定义闪存 JSON 路径: C:\ti\mcu_plus_sdk_am263x_10_02_00_13\source\sysconfig\board\.meta\flash
      4. 保存并编译示例工程
    3. 现在、构建示例后、使用 uniflash9.2 中的自定义闪存选项加载自定义闪存器二进制文件。(使用与下图类似的适当路径和.out 文件)
      1. 执行擦除整个闪存、只是为了确保干净的启动和路径正确(可选)
      2. 将引导模式保持为 Devboot (因此,在我们尝试重新刷写时,之前刷写的映像可能无法执行)  
    4. 下电上电后加载新编译的 SBL_QSPI 和 hello_world 映像。

    请尝试执行上述步骤、并告知我们您的观察结果。

    此致、
    Rijohn

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

    尊敬的 Rijon:

    感谢您的答复!

    我已经修改了 JTAG Uniflash 加载程序 syscfg 和 SBL syscfg、以便与电路板的闪存配合使用。  我可以看出这是有效的、因为 (a) uniflash 加载器经过器件初始化后(在修改 syscfg 之前,它会出错)、并且 SBL 会在通过 UART 闪存时成功加载应用程序代码(确实有效)。

    这里的问题是、当 Uniflash 启动目标上的加载程序后、系统会收到“Timed out waiting target to halt“消息。  在 CLI 中、它不会卡住、但也不会执行任何刷写操作。  我想能够通过 JTAG 进行刷写、最好使用命令行、但可以从 GUI 开始。

    是否有其他想法可以尝试?

    谢谢、

    -迈克尔

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

    您好、Michael:
     
    您能帮助我解决以下问题吗?

    1. 器件当前处于哪种引导模式(刷写时)?
      1. 尝试擦除整个闪存。
      2. 然后在 DEVBOOT 模式下重新刷写。

    2. 哪个是定制闪存器件型号?


    此致、
    Rijohn

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


    您好、Michael:

    ]我已经修改了两个 JTAG Uniflash 加载程序 syscfg
     

    只是为了确认、您是否修改了“C:\ti\mcu_plus_sdk_am263x_10_02_00_13\ tools\flasher\JTAG_uniflash “---->出现在工具文件夹中? 此 FLASHER_JTAG.out 应在 Uniflash 工具定制刷写器字段中使用。

    在我看到的内容提到   C:\ti\mcu_plus_sdk_am263x_10_02_00_13\examples\drivers\boot\sbl_jtag_uniflash 中存在的 sbl_jtag_uniflash 工程时重新确认这一点。

    注意:  .out 从..\生成 tools\flasher\JTAG_uniflash 由 UNIFLASH 工具使用、而不是“.."</s>“ 水平 \drivers\boot\sbl_jtag_uniflash。“


    此致、
    Rijohn

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

    嗨、 Rijohn、

    就是这样!  我只看到了文档中“Tools and Utilities -> Flashing Tools -> JTAG UniFlash“下的“SBL_JTAG_uniflash"部分“部分、而不是您指向的“Uniflash Custom Flash Writer“下的部分。  当我使用后者、并应用闪存器件自定义设置时、我能够通过 Uniflash GUI 刷写电路板 Sunglasses

    命令行 DSLite 似乎仍然没有写入闪存、但我可能缺少一些必需的参数 、因此可以单独执行。

    非常感谢您的帮助!

    -迈克尔