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.

[参考译文] RTOS/AM5726:DSP 崩溃问题

Guru**** 2952000 points

Other Parts Discussed in Thread: AM5726

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/669646/rtos-am5726-dsp-crash-issue

器件型号:AM5726

工具/软件:TI-RTOS

您好!

我们正在开发 AM5726定制板。

我们使用的是"4.4.3.32"内核版本和"ti-processor-sdk-linux-am57xx-evm-03.02.00.05" SDK 版本。

我们使用 DSP 来运行一个应用。 使用 DSP 时、从20个重启周期中获得以下错误。

因为此崩溃应用程序不会启动。

请做不必要的事。 如果需要任何其他详细信息、请告诉我。

=================================== 日志开始=========================================

[58.924208]  OMAP_hwmod:mu1_dsp1:_wait_target_disable 失败
[58.936716]  OMAP-hwmod:mu0_dsp1:_wait_target_disable 失败
[58.943788]   remoteproc2:已停止远程处理器40800000.dsp
[58.950810]   remoteproc2:发布了40800000.dsp
[58.956058]  OMAP-rproc 40800000.dsp:分配的保留存储器节点 dsp1_CMA@99000000
[58.964264]   remoteproc2:40800000.DSP 可用
[58.969894]   remoteproc2:注意:remoteproc 仍在开发中并被视为实验。
[58.979036]   remoteproc 2:二进制格式尚未最终确定、并且尚未保证向后兼容性。
[59.042277]  OMAP-hwmod:mu1_dsp2:_wait_target_disable 失败
[59.054820]  omap_hwmod:mu0_dsp2:_wait_target_disable 失败
[59.061548]   remoteproc2:为40800000.DSP 加电
[59.069171]   remoteproc2:引导 FW 映像 dra7-dsp1-fw.xe66,大小为21998880
[59.083667]  omap_hwmod:mu0_dsp1:_wait_target_disable 失败
[59.089566]  OMAP-iommu 40d01000.MMU:40d01000.MMU:版本3.0
[59.095539]  OMAP-iommu 40d020.MMU:40d020.MMU:3.0版
[59.102011]   remoteproc3:已停止远程处理器41000000.dsp
[59.110217]   remoteproc3:发布41000000.dsp
[59.115440]  OMAP-rproc 41000000.dsp:分配的保留存储器节点 dsp2_cma@9f000000
[59.133065]   remoteproc 3:41000000.dsp 现已推出
[59.140003]   remoteproc2:远程处理器40800000.DSP 现已启动
[59.146223]   remoteproc3:注意:remoteproc 仍在开发中并被视为实验。
[59.156347]  virtio_rpmsg_bus virtio7:rpmsg 主机处于联机状态
[59.156655]  virtio_rpmsg_bus virtio7:创建通道 rpmsg-proto addr 0x3D
[59.169980]   remoteproc3:二进制格式尚未最终确定,并且还不能保证向后兼容性。
[59.180737]   remoteproc2:注册的 virtio7 (类型7)
[59.221950]   remoteproc3:为41000000.dsp 加电
[59.226905]   remoteproc3:引导 FW 映像 dra7-dsp2-fw.xe66、大小为21998880
[59.243698]  omap_hwmod:mu0_dsp2:_wait_target_disable 失败
[59.249593]  OMAP-iommu 41501000.MMU:41501000.MMU:版本3.0
[59.255566]  OMAP-IMU 41500.MMU:41500.MMU:3.0版
[59.272858]   remoteproc3:远程处理器41000000.DSP 现已启动
[59.279511]  virtio_rpmsg_bus virtio6:rpmsg 主机处于联机状态
[59.279599]  virtio_rpmsg_bus virtio6:创建通道 rpmsg-proto addr 0x3D
[59.293387]   remoteproc3:registered virtio6 (type 7)
[69.155551]  OMAP_hwmod:mu1_dsp1:_wait_target_disable 失败
[69.169678]  omap_hwmod:mu0_dsp1:_wait_target_disable 失败
[70.045811]  OMAP-hwmod:mu1_dsp2:_wait_target_disable 失败
[70.059599]  omap_hwmod:mu0_dsp2:_wait_target_disable 失败
=================================== 日志结束=========================================

此致、

前置稳压器

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

    您所指的是哪个错误、"omap_hwmod:mu1_dsp1:_wait_target_disable failed"? 它与 DSP 崩溃无关。 我假设您正在使用绑定/取消绑定进行重新引导。 如果是这种情况、请确保在 bind / unbind、unbind / bind 命令之间至少有15秒。 如果您仍然看到 DSP 崩溃、则可能需要了解 DSP 崩溃的原因。

    您可能还想尝试使用最新的 ProcSDK。 我运行了 IPC MessageQ 示例、"_wait_target_disable failed"消息不会影响 DSP 的运行。 您的 DSP 崩溃应该是其他问题。


    root@am57xx-EVM:~# dmesg | grep dsp
    [ 0.00000]、共:保留内存:已初始化节点 dsp1_CMA@99000000、兼容 ID shared-dma-pool
    [ 0.00000]、共:保留内存:已初始化节点 dsp2_CMA@9f000000、兼容 ID shared-dma-pool
    [5.393322] OMAP-rproc 40800000.dsp:分配的保留存储器节点 dsp1_CMA@99000000
    [5.436171] remoteproc remoteproc2:可提供40800000.dsp
    [5.457397] OMAP-rproc 41000000.dsp:分配的保留存储器节点 dsp2_cma@9f000000
    [5.490316] remoteproc remoteproc3:41000000.dsp 现已推出
    [5.923601] remoteproc remoteproc2:为40800000.dsp 加电
    [5.923610] remoteproc remoteproc2:引导 FW 映像 dra7-dsp1-fw.xe66、大小为4663976
    [5.930285] OMAP-hwmod:mu0_dsp1:_wait_target_disable 失败
    [5.935574] remoteproc remoteproc3:为41000000.dsp 加电
    [5.935581] remoteproc remoteproc3:引导 FW 映像 dra7-dsp2-fw.xe66,大小为4510088
    [5.942244] OMAP_hwmod:mu0_dsp2:_wait_target_disable 失败
    [6.58888] remoteproc remoteproc2:远程处理器40800000.dsp 现已启动
    [6.744069] remoteproc remoteproc3:远程处理器41000000.dsp 现已启动
    root@am57xx-EVM:~# ls
    ex02_app_host tibt
    root@am57xx-EVM:~./ex02_app_host DSP1
    -->主要:
    ->Main_main:
    --> App_create:
    APP_CREATE:主机已就绪
    <-- App_create:
    --> App_exec:
    APP_exec:发送消息1
    APP_exec:发送消息2.
    APP_exec:发送消息3
    APP_exec:已收到消息、正在发送消息4
    APP_exec:已收到消息、正在发送消息5
    APP_exec:已收到消息、正在发送消息6
    APP_exec:已收到消息、正在发送消息7
    APP_exec:已收到消息、正在发送消息8
    APP_exec:已收到消息、正在发送消息9
    APP_exec:已收到消息、正在发送消息10
    APP_exec:已收到消息、正在发送消息11
    APP_exec:已收到消息、正在发送消息12
    APP_exec:已收到消息、正在发送消息13
    APP_exec:已收到消息、正在发送消息14
    APP_exec:已收到消息、正在发送消息15
    APP_exec:已收到消息
    APP_exec:已收到消息
    APP_exec:已收到消息
    <-- App_exec:0
    --> App_delete:
    <-- App_delete:
    <-- Main_main:
    <--主要:
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Rex:

    我不会在我的应用端重新启动 DSP。 DSP 在应用程序开始时自动重新启动。

    是否有任何理由重新启动 DSP? 这不是每次都发生,我在 20个重新启动周期中得到了这种行为。

    此致、

    前置稳压器

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

    大家好、Prerak、

    我实际上在问您如何重新启动? 一个脚本文件、用于从内核提示符重新引导、然后重新启动。 或其他方式? 当您说"DSP 在应用程序开始时自动重新启动"时、应用程序是否在 ARM/Linux 上运行? 我有点困惑。 DSP 内核需要启动、DSP 应用程序下载到 DSP、然后 DSP 应用程序开始运行。 如果是 Linux 应用、您的代码中是否控制 DSP?

    雷克斯

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

    尊敬的 Rex:

    很抱歉耽误您的回答。 我在应用方面调试问题、发现了以下内容。

    我正在使用 OpenCL 库与 DSP 通信。 当我 从应用程序端调用 clGetPlatformID (1、&platform_id、&ret_num_platforms)时、DSP 会重新启动。 此函数不返回任何值、应用程序将停止。

    回答您的问题:

    如何重新启动?

    -我正在对电路板执行硬重启。

    应用程序是否在 ARM/Linux 上运行?

    -是的,应用程序在 ARM 上运行。 我正在使用 OpenCL 库与 DSP 进行通信。

    此致、

    前置稳压器

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

    让我重建您的方案。

    当电路板在硬重启后开始运行时、Linux 会下载 DSP 映像。 然后、使用 OpenCL 的 Linux 应用程序开始运行。 Linux 应用程序大部分时间都能运行、但20次重启中有一次重启、运行 Linux 应用程序时、DSP 将崩溃。 发生崩溃时,Linux 应用程序正在调用 clGetPlatformIDs()。 我是否理解正确?

    在我看来、重启似乎不会导致 DSP 崩溃的任何可能原因、但 OpenCL 调用有时会起作用、有时甚至不起作用。

    我需要咨询我们的 OpenCL 专家、了解 OpenCL API 可能产生的影响。

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

    顺便说一下、Linux 应用程序是否会自动运行、以及通过测试循环中的脚本执行重新引导? 然后、例如20次迭代之后、当 Linux 应用程序调用 getPlatformIDs()时 DSP 崩溃?

    或者您硬重新启动板并手动运行 Linux 应用程序。 完成后、再次硬重新启动以重新测试、并在一段时间后使 DSP 崩溃?

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

    尊敬的 Rex:

    您对情景的理解是完美的。 无论它是软重启还是硬重启、我们都会在20次重启中遇到一次 DSP 崩溃。

    我不手动启动应用程序,它将通过我在/etc/init.d /中输入的运行级别脚本启动。

    请告诉我、您是否需要我这边提供更多详细信息。

    此致、

    前置稳压器

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

    好的。 我得到了更清晰的图片。 在 AM572x 上、DSP 固件在引导过程中由 Remoteproc 加载。 在引导过程中,"ti-mctd"守护程序也会自动启动。 只有在 remoteproc 加载 DSP 固件并启动 ti-mctd 后、才能运行任何 OpenCL 应用程序。 如果应用程序在登录后手动运行、这不会是问题、但如果 OpenCL 应用程序通过脚本自动运行、则可能会有问题。 该脚本需要确保远程处理器完成 DSP 固件加载、并且 ti-mctd 已启动。

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

    尊敬的 Rex:

    我确信我的"init script"会在 DSP 固件加载后启动应用程序。

    什么是 ti-mctd? 我不知道这个。 如何检查 ti-mctd 的状态?

    此致、

    前置稳压器

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

    有关 ti-mctd 守护进程 的详细信息,请参阅 OpenCL 文档,downloads.ti.com/.../

    root@am57xx-EVM:~# systemctl | grep MCT
    ti-mct-demon.service 运行 TI 多核工具守护程序时加载活动
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Rex:

    我将介绍 OpenCL 文档。

    当我应用 systemctl | grep MCT...时、我遇到以下错误。

    ========================================================================================================================================================

    root@am57xx-EVM:~# systemctl | grep MCT
    要显示所有已安装的单元文件、请使用'stemctl list-unit-files'。

    ========================================================================================================================================================

    我还尝试了 systemctl list-unit-files | grep MCT、它与 MCT 无关。

    ========================================================================================================================================================

    root@am57xx-EVM:~# systemctl list-unit-files | grep MCT
    root@am57xx-EVM:~#

    ========================================================================================================================================================

    此致、

    前置稳压器

     

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

    您是否在发生问题的系统上发出了命令或系统运行正常? 如果发生问题的是系统上的问题、这可能会对其进行解释。 您还可以使用"ps -ef"查看 ti-mctd 是否正在运行。 我使用的是内核4.9.41 (ProcSDK 4.1版本)。 您的 PSDK 3.2很旧、但我不确定两个版本之间的 OpenCL 术语是否存在差异。

    root@am57xx-EVM:~# ps -ef | grep ti-MCT
    根 714) 1 0 21:42? 00:00:00 /usr/bin/ti-mctd
    根 1141 1118 0 21:44 ttyS2 00:00:00 grep ti-MCT

    root@am57xx-EVM:~# systemctl | grep ti-MCT
    ti-mct-demon.service 运行 TI 多核工具守护程序时加载活动

    root@am57xx-EVM:~# uname -a
    Linux am57xx-EVM 4.9.41-ge3a80a1c5c #2 SMP 优先于 Tue 9月26日19:14:57 EDT 2017 armv7l GNU/Linux
    root@am57xx-EVM:~#
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、Prerak、

    这个线程上没有任何响应。 如果您的问题已解决、请单击"已解决"。 如果您有其他问题、请提交新主题。 谢谢!

    雷克斯