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.

[参考译文] SK-AM64B:"连接到目标时出错:(error –2062 @ 0x0) 无法停止器件。"将 CCS 12.8 Debug 连接到 R5F 内核时、Linux 已在 A53 上引导

Guru**** 2540610 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1560644/sk-am64b-error-connecting-to-the-target-error--2062-0x0-unable-to-halt-device-when-connecting-ccs-12-8-debug-to-r5f-core-linux-already-booted-on-a53

器件型号:SK-AM64B
主题中讨论的其他器件:SysConfig

工具/软件:

我尝试在 R5F 上运行一个应用程序、该应用程序会启动 PRU 二进制文件、并将 PRU 收集的数据一直报告到在 A53 内核上运行的 Linux 进程。 我首先在 MCU+ SDK examples/PRU_IO/ADC 目录中修改 ADS127 工程、在 OSPI 引导模式下使用 AM64 运行/调试、如 此处的 MCU+ SDK 所述加载 SBL NULL。 

在开发一个可正常工作的 R5F 和 PRU 程序后、我通过以下方式开始了 Linux -> R5F IPC 开发:

  1. 在 R5F 工程的 SysConfig 中添加 IPC、如 这里所述。
  2. 在我的 R5F 工程中编辑 linker.cmd 文件、将资源表 GROUP 包含在内并在存储器中分配 DDR_0 区域。
  3. 编译工程、并将.out 文件复制到/lib/firmware/ti-ipc 中的 Linux 文件系统
  4. 设置固件的符号链接、 如此处所述。
  5. 重新启动电路板并等待 Linux 完成引导

现在、在 AM64x Academy 的“Remote Cores“部分进行远程内核开发之后、我想 “在 Linux 运行时从 CCS 调试远程内核程序“。 我使用了在  MCU+ SDK“入门“说明的这一部分中创建的自定义目标配置。 我绕过了除 R5F_0_0、ICSSG0_PRU0、ICSSG0_PRU1 以及“跟踪“子路径下三个之外的每个内核。  

启动该目标配置后、Debug 视图会将所有 3 个内核显示为已断开连接。 当我尝试“连接“到 R5F_0_0 内核时、收到以下错误:“连接到目标时出错:(错误–2062 @ 0x0)无法停止器件。 重置器件、然后重试此操作。 如果错误仍然存在、请确认配置、对电路板进行下电上电、和/或尝试更可靠的 JTAG 设置(例如下 TCLK)。

到目前为止、我已经尝试过:

  • 正在重新启动
  • 在重新启动后插入 JTAG Micro USB
  • 在“AM64x"和“和“AM64x_SK_EVM"之间“之间更改目标配置中的“电路板或器件“。
  • 测试我的 JTAG 连接 — 已通过

我相信 Linux Remoteproc 驱动程序正在加载固件、在 Linux 完全启动之前我不会尝试连接到 R5F 内核。 任何建议都将非常感谢!


使用的软件:

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

    您好、Tim:

    感谢您的详细说明。 请告诉我们您正在使用哪种引导模式?

    给 SoC 上电时、您是否能够在控制台上查看引导加载程序日志?

    此致、

    Tushar

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

    您好、Tim:

    这意味着您没有使用 SBL NULL 二进制文件来初始化 EVM。

    请检查远程内核是否已启动或正在运行。 请参阅  正在引导远程内核 以了解详细信息。

    从 Linux 用户空间运行以下命令以查看远程内核的状态。

    head /sys/class/remoteproc/remoteproc*/name
    head /sys/class/remoteproc/remoteproc*/state

    此致、

    Tushar

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

    尊敬的 Tushar:

    叹气... 我是这样的,所以很有信心我检查了,但是 远程内核未运行。 我已从串行终端切换到 SSH 会话、忘记了内核警告/错误不会像在串行终端一样打印在 SSH 会话中。  

    `您`同样的问题,仔细检查远程核心的“状态“,即使在您的回声“开始“>...

    当将“start"回“回显到 Remoteproc 状态时、Remoteproc 驱动程序会在内核日志中打印不同的错误。 我认为这是由于编译的程序中的资源表错误引起的。  

    考虑这个问题已解决、谢谢。