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.

[参考译文] TDA4VE-Q1:无法更新 MIPI CRC 错误

Guru**** 2465270 points
Other Parts Discussed in Thread: AM62P

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1472531/tda4ve-q1-unable-to-update-mipi-crc-error

器件型号:TDA4VE-Q1
主题中讨论的其他器件:AM62P

工具与软件:

大家好、 专家:

我引用此 帖子 并成功在我的应用中获取"crcCount"参数。

我想测试此参数是否有效、因此进行了以下测试:

我尝试在摄像头侧强制出现 mipi CRC 错误、发现 CRC 错误可以在解串器侧表示、但"crcCount"参数仍然为0。

我读取 ERROR_IRQ 寄存器(0x04504028/0x04514028)、PAYLOAD_CRC_IRQ 仍为0。

但我使用相同的摄像头和解串器在 am62p 平台上进行了相同的测试、相同的错误注入方法。

我发现可以在 ERROR_IRQ 寄存器(0x30101028)中读取 mipi CRC 错误。 请参阅下图:

所以我想问一下 TDA4VE 平台上是否支持 mipi CRC 错误?

如果需要、是需要将其打开、还是读取错误的寄存器?

谢谢您~

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

    您好、王刘、

    是的、CRC 错误是 在 RTOS CSIRX 驱动程序中捕获的、但您能否通过调用 IOCTL_CSIRX_REGIST_EVENT CONTROL 命令来检查是否启用了这些错误?  请参阅 video_io\kernels\video_io\capture\vx_capture_target.c 中捕获节点中的实现。

    此致、

    Brijesh  

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

    您好、Brijesh:

    我认为是这样。

    此外、如前所述、在读取 ERROR_IRQ 寄存器时、PAYLOAD_CRC_IRQ 位不会显示 CRC 错误。

    此寄存器是否也与 ioctl 命令相关联?

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

    您好、王刘、

    我认为是的、请参阅 PDK 文档以获取驱动程序支持/捕获的错误列表。   

    此致、

    Brijesh

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

    您好、Brijesh、

    在 PDK 文档中、我可以确认支持 mipi CRC 错误。

    但是、在我的实际测试中、CRC 错误标志位(PAYLOAD_CRC_IRQ)未设置为1。


    我在 am62p 平台上进行了相同的测试、CRC 错误标志位 (PAYLOAD_CRC_IRQ)被设置为1。

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

    您好!

    嗯、 如果有效载荷中有任何 CRC 错误、那么它会被设置、但随后该中断由 RTOS 驱动程序处理、因此驱动程序会将其清除并使其自身的内部状态递增。 因此、请从驱动程序而不是从寄存器获取此状态。  

    此致、

    Brijesh

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

    您好、Brijesh、

    感谢您的耐心回答。 我理解。

    我尝试通过引用 video_io/kernels/video_io/test/test_capture.c 中的 TIVX_capture_get_statistics 参数的调用来完成以下函数

    vx_status app_send_stats_config_to_capture(vx_context context, CaptureObj *CaptureObj)
    {
        vx_status status = VX_SUCCESS;
        uint32_t *data_ptr;
        vx_map_id capture_stats_map_id;
        tivx_capture_statistics_t *capture_stats_struct;
        vx_user_data_object stats_config;
        vx_reference refs[1];
    
        stats_config =
            vxCreateUserDataObject(context, "tivx_capture_statistics_t" ,
            sizeof(tivx_capture_statistics_t), NULL);
    
        refs[0] = (vx_reference)stats_config;
    
        status = tivxNodeSendCommand(CaptureObj->node, 0,
            TIVX_CAPTURE_GET_STATISTICS, refs, 1u);
    
        if (status != VX_SUCCESS)
        {
            APP_PRINTF("Capture Node send command failed!\n");
        }
    
        vxMapUserDataObject(
                (vx_user_data_object)refs[0],
                0,
                sizeof(tivx_capture_statistics_t),
                &capture_stats_map_id,
                (void **)&data_ptr,
                VX_READ_ONLY,
                VX_MEMORY_TYPE_HOST,
                0
        );
    
        capture_stats_struct = (tivx_capture_statistics_t*)data_ptr;
    
        printf("\n\r==========================================================\r\n");
        printf(": Capture Status:\r\n");
        printf("==========================================================\r\n");
        printf(": CRC count: %d\r\n",capture_stats_struct->crcCount[0U]);
        printf(": CRC count: %d\r\n",capture_stats_struct->crcCount[1U]);
        vxUnmapUserDataObject((vx_user_data_object)refs[0], capture_stats_map_id);
    
        return status;
    }

    但是、注入 CRC 错误后、"crcCount"仍为0。

    您能帮我检查一下我的实施是否有问题吗?

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

    您好、王刘、

    这看起来是正确的实现、我想与您确认一下、当您运行此代码时是否确实生成了 CRC 错误?  如果是、则 驱动器应捕获该值。 我看到驱动程序报告了 CRC 错误。   

    此致、

    Brijesh  

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

    您好、Brijesh:

    我看到驱动程序报告的 CRC 错误。  [报价]

    您能否分享您看到的驱动程序报告的 CRC 错误日志?

    此外、我可以确认在运行此代码之前已生成 CRC 错误。

    因为我使用相同的摄像头和解串器在 am62p 平台上进行了相同的测试、也使用相同的 CRC 错误生成方法。

    我发现可在 ERROR_IRQ 寄存器(0x30101028)中读取 CRC 错误、因此此 CRC 错误生成方法有效。

    我已经在运行此代码之前实现了 CRC 错误生成、我可以读取到、解串器侧存在 CRC 错误。

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

    您好、王刘、

    JTAG 和 CCS 是否连接到此板上? 然后、我们可以连接到 MCU2_0、并将断点放置在错误回调中。

    BTW、请确认您为此使用的是 OpenVX 节点。 还有 令人高兴的是 OpenVX 节点正在注册并启用错误中断。  

    此致、

    Brijesh