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:上电概率不显示摄像头图像

Guru**** 2847400 points

Other Parts Discussed in Thread: AM62A7

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1609770/am62a7-power-on-probability-does-not-display-the-camera-image

器件型号: AM62A7

您好、TI 专家、

具体项目详情如下:
处理器:AM62A7
SDK:10.00.00.08
引导方法:eMMC 引导

硬件平台由我们自己设计。

我的设备出现了一个无法显示摄像机图像的概率问题。 这种情况发生的概率约为 1/30。 下面是 dmesg 信息的比较。

normal.txt    无 image.txt 

image.png

此外、我尝试使用命令直接显示摄像头图像。 以下是调试日志的比较。

command_normal.txt    command_no image.txt 

image.png

似乎关键的错误是 IPC:错误:无法为 CPU [C7x_1]创建 TX 通道!!

 

请协助进行分析。 谢谢你。

此致、

Gaogao

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

    您好、Gaogao、

    看起来您在 u-boot 期间初始化非 Linux 内核、然后在引导后期使用 Linux Remoteproc 驱动程序连接到非 Linux 内核。 另一个选项是让 Linux Remoteproc 驱动程序在 Linux 引导期间初始化非 Linux 内核。

    让我们检查一下“附加“代码是否出了问题(例如,看看是否有竞争条件在某个地方发生)。 请更改 u-boot 设置、以便 C7 内核和 MCU R5F 不会在 uboot 期间初始化。 请注意、您仍会看到 Linux 连接到 DM R5F 内核、因为 DM R5F 需要在 SPL 或 SBL 阶段开始运行。

    有关如何更改开箱即用行为以使远程内核由 Linux 初始化的更多信息:  

    请参阅 AM62Ax Academy > Linux >引导远程内核
    https://dev.ti.com/tirex/explore/node?isTheia=false&node=A__AX2DLf3J3o-JHYMSq7Eg0w__AM62A-ACADEMY__WeZ9SsL__LATEST

    有关引导非 Linux 内核的更多一般信息:

    请参阅 AM62Ax Academy >多核>引导和禁用处理器内核
    https://dev.ti.com/tirex/explore/node?isTheia=false&node=A__Ada-WjvmUg3JmB109NavGA__AM62A-ACADEMY__WeZ9SsL__LATEST

    此致、

    Nick

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

    我还想知道、在工作和不工作的情况下、非 Linux 内核的打印日志是否有任何差异。

    请查看 AM62Ax Academy > Multiple > Remote Cores 上的应用开发>通过 Linux 终端调试远程内核
    https://dev.ti.com/tirex/explore/node?isTheia=false&node=A__AfxfZqDGh-M3Xu5tsO1uFQ__AM62A-ACADEMY__WeZ9SsL__LATEST

    此致、

    Nick

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

        嗨、Nick

    1. 根据参考文档、初始化非 Linux 内核应该已经是 Linux 了。 我们未使用 env.txt and parts of the  U-Boot、Linux 引导日志显示如下

      ----- U-boot
      工作 FDT 设置为 88000000
      ##展开的设备树 blob 为 88000000
      使用位于 0x88000000 的 FDT blob 进行引导
      工作 FDT 设置为 88000000
      正在将设备树加载到 000000008feed000、结束 000000008fffffff ...确定

      工作 FDT 设置为 8feed000
      正在启动内核...

      ----- 内核
      [4.598077] remoteproc remoteproc1:远程处理器 79000000.r5f 现已启动
      [ 4.600137] virtio_rpmsg_bus virtio0:创建通道 rpmsg_chrdev 地址 0xe
      [ 4.602122] platform 78000000_r5f:R5F 内核在仅 IPC 模式下初始化
      [ 4.602158] rproc-virtio rproc-virtio.9.auto:指定了保留的内存节点 r5f-dma-memory@9c800000
      [ 4.602721] virtio_rpmsg_bus virtio1:rpmsg 主机已联机
      [4.602761] rproc-virtio rproc-virtio.9.auto: registered virtio1 (type 7)
      [4.602770] Remoteproc remoteproc2:远程处理器 78000000.r5f 现已连接
      [ 4.603414] virtio_rpmsg_bus virtio1:创建通道 rpmsg_chrdev 地址 0xd
      [ 4.609195] remoteproc remoteproc0:启动 7e000000.dsp
      [ 4.609225] remoteproc remoteproc0:引导固件映像 am62a-C71_0-fw、大小为 11604048
      [ 4.669727] k3-DSP-rproc 7e000000.dsp:使用 boot addr = 0x99a00000 引导 DSP 内核
      [ 4.678247] rproc-virtio rproc-virtio.10.auto:分配了保留的内存节点 c7x-dma-memory@99800000
      [ 4.683266] virtio_rpmsg_bus virtio2:rpmsg 主机已联机
      [4.683320] rproc-virtio rproc-virtio.10.auto: registered virtio2 (type 7)
      [ 4.683330] remoteproc remoteproc0:远程处理器 7e000000.dsp 现已在 upe2e.ti.com/.../normal-print.txte2e.ti.com/.../normal-dmesg.txt 上提供
    2. 何时使用  SBL  则也会发生类似的问题。 请参阅下面的问题链接。 此外、  DM-R5 内核  也有一定的可能性(约 2%)无法与 Linux 内核通信。

      AM62A7:mcu1_0 c7x_1 学习速度太慢 — 处理器论坛-处理器 — TI E2E 支持论坛
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Nick、

    任何更新?

    此致、

    Gaogao

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

    您好、

    线程所有者将在 2 月 17 日的一周内停止工作。 如果您在这周内没有收到更新、请 ping 通该线程。

    感谢您的耐心。

    此致、
    Harshith

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

    您好、Nick、

    任何更新?

    此致、

    Gaogao

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

    您好、Gaogao、

    对持续延误深表歉意。 我留出了一些时间来查看您在星期四上的线程。 然后我将提供更多信息。

    此致、

    Nick

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

    尊敬的 Nick:

    我可以请求您的帮助来提供 更新吗?

    对持续延迟深表歉意。 我留出了一些时间来查看您在星期四上的线程。 然后我将提供更多信息。

    非常感谢!

    Yong

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

    您好、Nick、

    更多信息、

    我尝试使用上的命令直接显示摄像机图像 EVM 平台。

     

    gst-launch-1.0 videotestsrc is-live=true num-buffers=1 ! \
    video/x-raw,width=640,height=480,format=NV12,framerate=60/1 ! \
    queue ! \
    tiovxmultiscaler name=multi \
    multi.src_0 ! video/x-raw, width=1280,height=720,format=NV12 ! queue ! \
    filesink location=/tmp/out0.nv12 sync=true

    以下是命令的输出日志。

    APP: Init ... !!!
        18.683240 s: MEM: Init ... !!!
        18.683281 s: MEM: Initialized DMA HEAP (fd=5) !!!
        18.683410 s: MEM: Init ... Done !!!
        18.683423 s: IPC: Init ... !!!
    _rpmsg_char_find_ctrldev: could not find the matching rpmsg_ctrl device for virtio0.rpmsg_chrdev.-1.13
        18.698946 s: IPC: ERROR: Unable to create TX channels for CPU [c7x_1] !!!
        18.698962 s: IPC: Init ... Done !!!
    APP: ERROR: IPC init failed !!!
    REMOTE_SERVICE: Init ... !!!
    _rpmsg_char_find_ctrldev: could not find the matching rpmsg_ctrl device for virtio1.rpmsg_chrdev.-1.21
    _rpmsg_char_find_ctrldev: could not find the matching rpmsg_ctrl device for virtio0.rpmsg_chrdev.-1.21
    REMOTE_SERVICE: Init ... Done !!!
        18.700952 s: GTC Frequency = 200 MHz
    APP: Init ... Done !!!
        18.701085 s:  VX_ZONE_INIT:Enabled
        18.701097 s:  VX_ZONE_ERROR:Enabled
        18.701106 s:  VX_ZONE_WARNING:Enabled
        18.701922 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:124] Added target MPU-0 
        18.702156 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:124] Added target MPU-1 
        18.702289 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:124] Added target MPU-2 
        18.702416 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:124] Added target MPU-3 
        18.702439 s:  VX_ZONE_INIT:[tivxInitLocal:136] Initialization Done !!!
        18.702522 s:  VX_ZONE_INIT:[tivxHostInitLocal:106] Initialization Done for HOST !!!
    WARNING: erroneous pipeline: could not link multi to queue1, multi can't handle caps video/x-raw, width=(int)1280, height=(int)720, format=(string)NV12

    关键错误是  IPC:错误:无法为 CPU [C7x_1]创建 TX 通道!!

    测试结果汇总如下:

    在 EVM 平台上、从 eMMC 引导时会发生相同的问题、概率约为 1/30。
    在 EVM 平台上、从 SD 卡引导时、不会出现问题。

    此致、

    Gaogao

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

    任何信息?

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

    SDK 10.00.00.08

    EVM 上的验证步骤如下:
    1. 使用 SD 卡将程序刻录到 eMMC 上。

    2. 将启动模式更改为 eMMC。

    3.接通电源

    4. 在串行端口上运行命令

    gst-launch-1.0 videotestsrc is-live=true num-buffers=1 ! \
    video/x-raw,width=640,height=480,format=NV12,framerate=60/1 ! \
    queue ! \
    tiovxmultiscaler name=multi \
    multi.src_0 ! video/x-raw, width=1280,height=720,format=NV12 ! queue ! \
    filesink location=/tmp/out0.nv12 sync=true

    5. 检查是否有“  IPC:错误:无法为 CPU [C7x_1]创建 TX 通道!! 可用功率。  

    6.关闭电源

    7.重复步骤 3 至 6

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

    当使用 vx_app_arm_remote_log.out 检查 DM MCU 和 DSP C7x 的启动日志时、以下是正常和异常情况之间的比较。 当失败时、MCU 在等待客户端同步时卡住、DSP 在 IPC 初始化期间挂起。

    ...

    ...

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

      e2e.ti.com/.../cores_5F00_starup_5F00_normal.loge2e.ti.com/.../cores_5F00_starup_5F00_failed.log

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

    亲爱的 Canjian。

    请使用 JTAG 工具帮助检查 DSP C7x 和 DM R5F 状态。 您可以加载正确的符号文件、然后附加到这两个内核。

    非常感谢!

    Yong

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

    当 DSP C7x 无法引导时、CCS 会在尝试连接时报告错误。 强制连接后、显示 DSP 在注册 IPC 中断时卡住。

    MCU 的无带版本无法运行、因为它超过了为 TISPL 分配的 eMMC 分区大小。 使用条图版本时、添加调试打印件会显示正在等待 appLogCpuSyncWithSlave。 DSP 和 MCU 的寄存器转储位于 attachment.e2e.ti.com/.../boot_5F00_dsp_5F00_failed_2D00_dsp_5F00_register.txte2e.ti.com/.../boot_5F00_dsp_5F00_failed_2D00_mcu_5F00_register.txt 中

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

    大家好

    我们取得了一些进展。 当 DSP 注册 IPC 中断时、会执行嵌套禁用/启用中断操作。 我们尝试删除此嵌套、如以下代码所示。 验证显示问题已解决 — 在超过 500 次重复重新引导后、问题不再出现、而以前大约每 50 次重新引导就会出现一次。

    我们的问题是:

    1. 这种删除嵌套的修改是否有任何问题? 嵌套是否必要?

    2. 此问题是否会由嵌套引起?