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.

[参考译文] TDA4VM:fvid csirx

Guru**** 2539500 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1425141/tda4vm-fvid-csirx

器件型号:TDA4VM

工具与软件:

HI TI

软件平台:ti-processor-sdk-rtos-j721e-evm-08_01_00_13

我们希望监控 FVID 和 Csirx 驱动器模块内环视摄像头的帧速率。 当 FVID 或 Csirx 无法接收来自摄像头的数据时、我们需要 MCU2_0来输出相关日志。 目的是在应用层未接收到帧速率信息时方便找出问题所在。

您能否建议如何添加相关日志?

谢谢你。

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

    您好!  

    在捕获节点目标实现内部、例如、中 ${PSDKRA}/video_io/kernels/video_io/capture/vx_capture_target.c  ,在函数 tivxCaptureProcess ()中,您可以看到与每个捕获实例关联的时间戳。  

    此时间戳可以用于开头。

    此外、同一文件中还有一个 captDrvCallback()。 这是来自驱动程序 DMA 完成的回调函数。 即、每次来自传感器的帧发生 DMA 完成时、都会调用此函数。 您也可以在这里跟踪 fps。

    这些位置在 TIOVX 捕获节点中的2个位置、您可以在其中跟踪 R5内核的 fps。

    此致、

    Nikhil

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

    HI TI

    请说明如何向该函数添加代码以实现对驱动程序帧速率的监控? 您能否提供补丁? 谢谢你。

    static vx_status VX_CALLBACK tivxCaptureProcess(
        tivx_target_kernel_instance kernel,
         tivx_obj_desc_t* obj_desc[],
        uint16_t num_params, void* priv_arg)
    {
        vx_status status = (vx_status)VX_SUCCESS;
        tivxCaptureParams* prms = NULL;
        tivx_obj_desc_object_array_t* output_desc;
        vx_uint32 size, chId = 0U;
        vx_enum state;
        uint64_t timestamp = 0U;
        uint8_t timeoutExceeded = CAPTURE_TIMEOUT_VALID;
    
            if ((num_params != TIVX_KERNEL_CAPTURE_MAX_PARAMS)
            || (NULL == obj_desc[TIVX_KERNEL_CAPTURE_INPUT_ARR_IDX])
            || (NULL == obj_desc[TIVX_KERNEL_CAPTURE_OUTPUT_IDX])
            )
        {
            status = (vx_status)VX_FAILURE;
        }
        
        ......
    }
        

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

    您好!

    首先、您能否在此函数的下面位置打印"obj_desc[TIVX_kernel_capture_output_idx]->timestam"的值?

    检查控制台上打印的值、并查看 prev 和 Curr 值之间的差异是否为33毫秒

    通过该选项、您可以计算 R5内核上捕获的 FPS。

    此致、

    Nikhil

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

    尊敬的 TI:

    根据您之前建议的时间戳记录进行实验后、我发现日志是在应用程序级别(TIOVX 应用程序)生成的。 但是、这不是我打算调查的内容、因为当应用程序出现故障时、时间戳日志的意义不大、对故障排除没有帮助。

    我的目标是添加日志以在驱动程序级别监控帧速率、确保驱动程序(低级软件)正常运行并接收数据(帧)。

    例如、中断、寄存器、CSIRX 等的日志

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

    您好!

    很抱歉、我不明白您的要求。  

    前面所述的一段代码在 MCU2_0上运行、当前您在终端上看到的日志正在从 DDR 中的缓冲区中读取。

    SDK 通过这种方式输出远程内核日志。  

    我知道你的用例中的日志是什么意思吗? 您希望以何种方式及在何处查看此内容?

    此致、

    Nikhil

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

    HI TI

    我想使用下图所示的软件架构、在驱动程序级别获得帧速率。 每当 MIPI 向平台输出帧时、平台驱动程序应该能够捕获帧速率。

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

    您好!

    上述时间戳也可在驱动程序中找到、您可以使用它来计算 FPS  

    请检查中的变量"timestamp = gCsirxCommonObj.getTimeStamp (NULL);"  CsirxDrv_udmaCQEventCb () in  PDK/packages/ti/drv/csirx/src/csirx_drvUdma

    此致、

    Nikhil