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.

[参考译文] Linux/AM5728:在 PSDK v3.03.00.04 (Linux)上使用基于 OpenCV 的应用程序时出现 TIOCL 致命错误

Guru**** 2551110 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/601748/linux-am5728-tiocl-fatal-error-seen-while-using-opencv-based-application-on-psdk-v3-03-00-04-linux

器件型号:AM5728

工具/软件:Linux

您好!

我们为 AM57x 提供了基于 OpenCV 的应用、该应用使用后台减法器(MOG2)算法。 该应用程序基于移动对象检测示例应用程序(bgfg_segm.cpp)。

该应用程序在 PSDK 3.02.00.05 (Linux)上运行良好。 应用程序不使用 DSP 加速。

迁移到 PSDK 3.03.00.04 (Linux)后、我们在尝试运行应用程序时看到以下错误–

 

CMEM 错误:registerAlloc: ioctl CMEM_IOCREGUSERR failed for phys addr 0xa0000000:-1

TIOCL 致命错误:TI 多核工具守护程序(/usr/bin/ti-mctd)未运行。 启动守护程序后重新运行应用程序。 有关详细信息、请参阅用户指南。

 

根据上述消息,如果我们启动“TI 多核工具守护程序”(/usr/bin/ti-mctd)并运行应用程序,则会出现以下错误–

TIOCL 致命错误:内部错误:消息队列数(0)与计算单元数(2)不匹配

 

由于在 v3.02.00.05中看不到 PSDK v3.03.00.04、因此我们无法找出这些错误的原因。  此外、上述错误似乎是由 OpenCL 代码触发的。 由于我们不启用 DSP 加速(‘OpenCV_OpenCL_DEVICE_=‘)、因此观察并不直观。 请帮帮我。

此致、

Durgesh

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

    [引用]该应用程序在 PSDK 3.02.00.05 (Linux)上运行良好。 应用程序不使用 DSP 加速[/报价]
    在这种情况下、您应该将其从保留的 cmem 区域中移动:
    保留存储器{
    #address-cells =<2>;
    大小单元格=<2>;
    范围;

    cmem_block_mem_0:cmem_block_mem@a0000000{
    reg =<0x0 0xa0000000 0x0 0x0c000000>;
    无地图;
    状态="正常";
    };

    cmem_block_mem_1_ocmc3:cmem_block_mem@40500000{
    REG =<0x0 0x40500000 0x0 0x100000>;
    无地图;
    状态="正常";
    };
    };

    从日志中可以看到、OpenCV 应用程序从保留区域0xa0000000内运行。

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

    请向我说明以下问题:

    1.如果您建议将 CMEM 区域移离上述保留存储器区域、则 CMEM 区域应移至何处? 您能不能建议 CMEM 可移动到的存储器位置、并提供存储器详细信息。

    2. PSDK 3.02.00.05和 PSDK 3.03.00.04的器件树与上述保留区域和 CMEM 区域的 wrt 完全相同、如 arch\arm\boot\dts\am57xx-evm-cmem.dtsi 文件中定义的那样。 但是、我们发现上述问题仅涉及 PSDK 3.03.00.04、而不涉及 PSDK 3.02.00.05。 我相信 OpenCV 在两个 PSDK 版本中都从同一区域运行、即保留区域0xa0000000。 但问题仅在 PSDK 3.03.00.04中出现。 请澄清一下。

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

    请告诉我是否有任何有关上述问题的更新?

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

    尊敬的 Durgesh:

    您是否仅看到 MOG2 API 的问题?

    您还可以检查 "OpenCV_OpenCL_DEVICE_=DISABLED"是否有帮助?

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

    Durgesh、

    很抱歉、此问题的响应延迟。 根据您提供的错误日志、我们怀疑 OpenCV 正在创建 OpenCL 上下文、即使禁用了 DSP 加速。我们正在与开发人员内部合作以找出导致此问题的根本原因。 在创建 OCL 上下文方面、3.2和3.3 (OpenCV)之间没有真正变化、但 OpenCL 实现可能已发生变化、这可能导致行为从一个 SDK 版本变为另一个版本。  

    您能否在运行应用程序之前确认您没有在 OpenCV 测试套件中运行 setupEnv.sh 脚本、或者没有其他应用程序可以设置 OpenCV OpenCL 环境变量。

    您是否有机会在最新的处理器 SDK Linux 4.0中试用此产品? 我会随时向您发布我们在内部讨论中能够找到的内容。


    此致、
    Rahul

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

    Durgesh、

    ti-mctd 守护进程应已在引导过程中启动。 是否可以使用“journalctl -u ti-mct-demon.service"”检查系统日志中是否有来自守护程序的任何错误消息

    谢谢、Ajay