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.

[参考译文] AM62A7:GST 有时无法正确检索摄像头数据

Guru**** 2394295 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1490833/am62a7-gst-sometimes-fails-to-properly-retrieve-camera-data

器件型号:AM62A7

工具与软件:

您好!

引导系统后、打开多个 SSH 终端并执行多个管道可能会导致系统间歇性挂起。 输油管的发射数量和发射之间的时间间隔都可能影响冻结的发生。

  1. 时间间隔越短  管线执行之间的时间间隔、 ​挂起的概率就越高 .

    • 示例:如果 cms 先启动、然后几乎立即启动 ir  rgb、系统将持续冻结。
  2. 启动的管道数量越多 、 ​挂起的概率就越高 .

    • 示例:
      •  cms 引导后立即启动具有 ​极低的概率  冰点。
      •  ir  cms 已成功启动后启动具有 ​低概率  冰点。
      •  rgb  cms  ir 运行之后启动会导致中的 ​概率要高得多  冰点。

测试结果:  最初启动的流水线冻结的场景。

稍后启动的管道可能会在处冻结 ​与时钟同步相关的 GST 日志消息 、无后续 ​ISP 相关日志  已打印。

 dmesg 输出如下:

通过使用 devmem2 命令检查相关寄存器、可以观察到寄存器 0x30102040、、 0x30102060 0x30102080、 0x30101060和的值 0x31011028 在这两个过程中保持相同 ​GST 冻结  和 ​正常 GST 操作 . 具体而言、这些值为:
0x8010006C、 0x801000AB 0x801000EB 0x20000000、、和 0x000E0100

关于此问题、我有以下问题:

  1. GST 无法接收摄像头图像数据的可能原因是什么?
  2. 我最初怀疑是 DMA 问题。 除了上的寄存器之外 0x30102020 + 20*j、是否还有其他寄存器可用于检查 DMA 的操作状态?
    • 例如、配置 DMA 的寄存器 ​源(src)  和 ​目标(目标)  进行通信。
  3. 为什么 GST 无法接收摄像头数据是间歇性问题?

提示:
接收数据后打印的日志消息是一种调试工具、用于监控是否成功接收摄像头图像数据帧。

谢谢!

Yuwei

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

    您好、Yuwei、

    我怀疑这是 GStreamer 问题。 您是否可以尝试以类似的方式运行 yavta 或 v4l2捕获、看看是否可以在不被冻结的情况下捕获原始图像? 这可以帮助我们排除任何与 CSI Rx 相关的问题。

    谢谢你。

    建中

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

    你好、建中、

    我们尝试使用 v4l2-ctl 命令来检索原始帧速率、从而隔离 GST (GStreamer)的影响。 我们使用的命令如下所示:

    v4l2-ctl -d /dev/video4 --set-fmt-video=width=2592,height=1944,pixelformat=RGI0 --stream-mmap --stream-loop  
    v4l2-ctl -d /dev/video5 --set-fmt-video=width=2592,height=1944,pixelformat=RGI0 --stream-mmap --stream-loop  
    v4l2-ctl -d /dev/video3 --set-fmt-video=width=1360,height=670,pixelformat=RG12 --stream-mmap --stream-loop

    我们无法捕获任何帧速率输出。 我相信使用 yavta 命令抓取原始图像会产生相同的结果,正如我在问题描述中提到的那样。 我已经检查了相关寄存器、但它们似乎没有显示任何异常。 我想知道是否有其他方法可以进一步进行故障排除。 德州仪器(TI)在多摄像头测试期间是否会遇到类似问题?


    谢谢!

    Yuwei

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

    您好、Yuwei、

    让我尝试在内部重现此情况。 它们在 SDK 10.1上、对吧?

    此致、

    建中

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

    尊敬的建中:

    这是在 SDK 10.1上、对吗?

    是的、我们的功能是使用 SDK 版本10.01开发的。

    谢谢!

    Yuwei

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

    尊敬的 Yuwei:

    我可以在3个端子中运行 v4l2-ctl 捕获。 命令为:

    # v4l2-ctl -d /dev/video-ov2312-rgb-cam0 --set-fmt-video=width=1600,height=1300,pixelformat=BGI0 --stream-mmap --stream-loop
    # v4l2-ctl -d /dev/video-ov2312-ir-cam0 --set-fmt-video=width=1600,height=1300,pixelformat=RGI0 --stream-mmap --stream-loop
    # v4l2-ctl -d /dev/video-imx390-cam0 --set-fmt-video=width=1936,height=1100,pixelformat=RG12 --stream-mmap --stream-loop

    下面是全部3个端子的屏幕截图:

    在我停止这些命令后、重新运行这些命令不起作用。 我必须重新运行/opt/edgeai-gst-apps/scripts/setup_cameras.sh 以重新配置媒体流水线、然后重新运行这些命令。

    此致、

    建中

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

    尊敬的建中:

    我们遇到的 GST 问题本质上是概率性问题。 重新启动后、可能会出现我在该问题中描述的现象。 您可能需要对当前电路板执行应力测试、以检查是否存在任何潜在问题。

    谢谢!

    Yuwei

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

    尊敬的 Yuwei:

    我在内部进行了检查、了解到对于 RGB+RGB IR 传感器、独立启动和停止捕获可能会导致挂起。  

     独立启动和停止 RGB 和 IR 流是否是您的系统的一项要求?

    谢谢你。

    建中

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

    尊敬的建中:

    单独启动摄像头现在就足够了。 我更担心的是、在系统启动测试过程中、您是否在检测摄像头帧速率时遇到任何间歇性故障?

    谢谢!

    Yuwei

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

    尊敬的 Yuwei:

    到目前为止、我在重启之后还没有看到过失败、但我们会密切关注。

    此致、

    建中