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.

[参考译文] TDA4AL-Q1:CSI TX 接收到不正确的映像

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1503157/tda4al-q1-csi-tx-receive-incorrect-image

器件型号:TDA4AL-Q1
主题中讨论的其他器件:TDA4VL

工具/软件:

您好、TI 专家、

我们已通过 enable_CSITX_output.patch 完成将 CSI RX 到 M2M 节点到 CSI TX 的移植、如下方链接所示

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1306674/faq-tda4vm-enable-csi-tx-output-instead-of-dss-output-in-the-capture-demos-of-vision_apps

通过使用 run vision single cam 应用程序的日志、CSI TX 成功地将帧从 M2M 节点出队。

[MCU2_0]     45.869406 s: ==========================================================
[MCU2_0]     45.869461 s:  Csitx Status: Instance|1
[MCU2_0]     45.869484 s: ==========================================================
[MCU2_0]     45.869515 s:  FIFO Overflow Count: 0
[MCU2_0]     45.869535 s:   Channel Num | Frame Queue Count | Frame De-queue Count | Frame Repeat Count |
[MCU2_0]     45.869570 s:               0|              91|             91|             0|
[MCU2_0]     45.872526 s: ==========================================================
[MCU2_0]     45.872582 s:  Display M2M Status: Instance|0
[MCU2_0]     45.872605 s: ==========================================================
[MCU2_0]     45.872634 s:  Queue Count: 91
[MCU2_0]     45.872654 s:  De-queue Count: 91
[MCU2_0]     45.872676 s:  Write-back Frames Count: 91
[MCU2_0]     45.872699 s:  Underflow Count: 0
[MCU2_0]     45.880784 s: ==========================================================
[MCU2_0]     45.880840 s:  Capture Status: Instance|0
[MCU2_0]     45.880864 s: ==========================================================
[MCU2_0]     45.880894 s:  overflowCount: 0
[MCU2_0]     45.880916 s:  spuriousUdmaIntrCount: 0
[MCU2_0]     45.880938 s:  frontFIFOOvflCount: 0
[MCU2_0]     45.880958 s:  crcCount: 0
[MCU2_0]     45.880975 s:  eccCount: 0
[MCU2_0]     45.880995 s:  correctedEccCount: 0
[MCU2_0]     45.881015 s:  dataIdErrorCount: 0
[MCU2_0]     45.881036 s:  invalidAccessCount: 0
[MCU2_0]     45.881058 s:  invalidSpCount: 0
[MCU2_0]     45.881080 s:  strmFIFOOvflCount[0]: 0
[MCU2_0]     45.881103 s:  strmFIFOOvflCount[1]: 0
[MCU2_0]     45.881122 s:  Channel Num | Frame Queue Count | Frame De-queue Count | Frame Drop Count | Error Frame Count |
[MCU2_0]     45.881167 s:            0 |                93 |                   93 |               46 |                 0 |

但我们遇到了同样的问题、就像另一个 E2E 问题。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1469561/tda4vh-q1-csitx-debug/5654114?tisearch=e2e-sitesearch&keymatch=csirx%252525252520to%252525252520csitx#5654114

我们通过 CSI TX 收到无信息图像。

但他似乎找到了如下解决方案。

您能帮助我检查如何在修补程序中添加此解决方案吗?

谢谢、

YL

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

    您好、

    更改以下补丁片段  

    最终目的

            printf ("Enabling DSS_M2M \n");
            vx_image csitx_img  = vxCreateImage(obj->context, obj->width_in, obj->height_in, VX_DF_IMAGE_UYVY);
            obj->csitx_image_arr = vxCreateObjectArray(obj->context, (vx_reference)csitx_img, num_capture_frames);
            vxReleaseImage(&csitx_img);
    
            obj->display_m2m_output_image = (vx_image)vxGetObjectArrayItem(obj->csitx_image_arr, 0);
            obj->display_m2m_param_obj = vxCreateUserDataObject(obj->context, "tivx_display_m2m_params_t", sizeof(tivx_display_m2m_params_t), &obj->display_m2m_params);
            obj->displaym2mNode = tivxDisplayM2MNode(obj->graph, obj->display_m2m_param_obj, obj->ldc_out, obj->display_m2m_output_image);
            if(status == VX_SUCCESS)
            {
                status = vxSetNodeTarget(obj->displaym2mNode, VX_TARGET_STRING, TIVX_TARGET_DISPLAY_M2M1);
            }
    
            if(status == VX_SUCCESS)
            {
                status = tivxSetNodeParameterNumBufByIndex(obj->displaym2mNode, 2u, obj->num_cap_buf);
            }
    
            // CSI-TX
            {
                obj->csitx_node = tivxCsitxNode(obj->graph, obj->csitx_config, obj->csitx_image_arr);
                vxSetNodeTarget(obj->csitx_node, VX_TARGET_STRING, TIVX_TARGET_CSITX);
            }
    

    此致、
    Gokul

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

    尊敬的 Gokul:

    此修改的修补程序仍然不起作用。

    我认为 obj->csitx_image_arr 没有应用 obj->display_M2M_output_image。

    您能帮助我们看看造成这种结果的原因吗?

    谢谢、

    YL

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

    尊敬的 Gokul:

    另一个问题是、我找到了有关此相关问题的链接、如下所示: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1094695/tda4vm-how-to-transfer-capture-node-data-to-csitx-node

    我们是否可以像 CSI RX 0 -> M2M 0 -> CSI TX1一样遍历流水线?
    因为我们的电路板需要使用 CSI TX1来输出图像。

    谢谢、

    YL

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

    尊敬的 Chen:

    希望您对 LDC 启用/禁用条件都进行了更改。

    我认为 obj->csitx_image_arr 没有应用 obj->display_M2M_output_image
     

    您可以通过检查此 API tivxExportGraphToDot()的点输出来验证、这将显示是否在节点之间正确连接缓冲区。

    同时检查 csitx 配置和输出端、因为我在日志中看到了帧队列/出队计数。

    此致、
    Gokul

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

    尊敬的  Gokul:

    感谢您的答复。

    日志之前的:

    [MCU2_0]   45.869461 s:Csitx 状态:实例|1

    [MCU2_0]   45.872582 s: 显示 M2M 状态:实例|0

    [MCU2_0]   45.880840 s: 捕获状态:实例|0

    那么、是否连接了流水线节点成功?

    谢谢、

    YL

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

    尊敬的 Chen:

    您使用的是哪个 SDK 版本?

    此致、
    Gokul

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

    尊敬的 Gokul:

    我使用 适用于 TDA4VE、TDA4VL 和 TDA4AL 的 RTOS-J721S2—PROCESSOR-SDK-RTOS 的10.01.00.04。

    谢谢、

    YL

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

    尊敬的 Chen:

    CSI TX 是否支持接收3840 x 2160大小?

    是的、它支持。

    是否可以通过从 csitx_image_arr 中获取一个元素来保存 csitx 输出图像

    在上面的代码段中添加以下内容:

    obj->csitx_output_image = (vx_image)vxGetObjectArrayItem(obj->csitx_image_arr, 0);
    snprintf(yuv_image_fname, MAX_FNAME, "%s/%s_%04d.yuv", test_data_path, "csitx", file_index);
    printf("CSITX file name %s \n", yuv_image_fname);
    num_bytes_io = write_output_image_yuv422_8bit(yuv_image_fname, (vx_image)obj->csitx_output_image);
    if(num_bytes_io < 0)
    {
        printf("Error writing to CSITX YUV file \n");
        return VX_FAILURE;
    }
    vxReleaseImage(&obj->csitx_output_image);

    您能用它进行测试并发送输出图像吗?

    您可以通过检查此 API tivxExportGraphToDot()的点输出来验证、这将显示缓冲区是否在节点之间正确连接。

    您是否检查过此项。

    此致、
    Gokul

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

    此外、您是否可以在 CSITX 中打印缓冲区地址、如下面的 tivxCsitxEnqueueFrameToDriver API 中所示?

                if (NULL != fvid2Frame)
                {
                    /* Put into frame list as it is for same driver instance */
                    frmList->frames[(chId - startChIdx)]           = fvid2Frame;
                    frmList->frames[(chId - startChIdx)]->chNum    = (chId - startChIdx);
                    frmList->frames[(chId - startChIdx)]->addr[0U] = transmit_frame;
                    frmList->frames[(chId - startChIdx)]->appData  = input_desc;
                    
                    addrL = transmit_frame & 0xFFFFFFFF;
                    addrU = (transmit_frame & 0xFFFFFFFF00000000) >> 32;
                    VX_PRINT(VX_ZONE_ERROR, " CSITX: Input Buffer Address 0x%x 0x%x 0x%x!!!\n",
                        transmit_frame, addrU, addrL);
                }
    

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

    您好、Brijesh、

    运行 run_app_single_cam.sh 时、日志始终按如下方式打印:

    [MCU2_0]    116.679981 s:  VX_ZONE_ERROR: [tivxCsitxEnqueueFrameToDriver:287] [TEST] CSITX: Input Buffer Address 0x1bcf000 0x9 0x9!!!

    如果正确或不正确、可以帮助我检查一下吗?

    谢谢、

    YL

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

    尊敬的 YL:

    对于所有打印、缓冲区地址是否保持不变、即0x1bcf0000?

    此致、

    Brijesh

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

    您好、Brijesh、

    是的、它始终打印此内容。

    谢谢、

    YL

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

    尊敬的 YL:

    这看起来不正确、地址应该正在更改。  

    不幸的是、Vx_printf 不支持打印64位值、因此我们看不到完整的64位地址值。 您是否碰巧在这个板上连接了 JTAG + CCS? 然后、我们可以将这些地址存储在某个全局变量中、然后通过连接 CCS 进行分析。  

    此致、

    Brijesh

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

    您好、Brijesh、

    坏消息、我们没有 JTAG + CCS、有没有方法可以进行调试?

    谢谢、

    YL

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

    尊敬的 Gokul:

    我下载了  tivxExportGraphToDot 文件。

    single_cam_drag_1_img.txt、 single_cam_drag_2_pipe_img.txt、single_cam_drag_3_data_ref_q_img.txt 、 single_cam_graph_4_pipe0_img.txt

    您能帮助我检查一下是否有问题吗?

    此外、它是否需要启用 DSI 节点?

     app_cfg_mcu2_0.h 中的 vision_apps\platform\j721s2\rtos\commont。

    是否应按如下方式修改此配置?

    #elif defined(ENABLE_DSS_SINGLE)
        #undef  ENABLE_DSS_DUAL
        #undef  ENABLE_DSS_EDP
        #define ENABLE_DSS_DSI
    #endif

    谢谢、

    YL

    e2e.ti.com/.../single_5F00_cam_5F00_graph_5F00_1_5F00_img.txte2e.ti.com/.../single_5F00_cam_5F00_graph_5F00_2_5F00_pipe_5F00_img.txte2e.ti.com/.../single_5F00_cam_5F00_graph_5F00_3_5F00_data_5F00_ref_5F00_q_5F00_img.txte2e.ti.com/.../single_5F00_cam_5F00_graph_5F00_4_5F00_pipe0_5F00_img.txt

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

    尊敬的 Chen:

    我检查了图形输出、发现 single_cam_graph_2_pipe_img.txt 中存在一些错误的缓冲区分配

    data_ref_q_159应该由4个图像 object_array 组成、例如第一个缓冲器、其中2、3、4个缓冲器为 image 类型。

    能否将 displaym2mnode 的输出参数设为复制状态、请参阅以下代码

            printf ("Enabling DSS_M2M \n");
            obj->csitx_output_image = vxCreateImage(obj->context, obj->width_in, obj->height_in, VX_DF_IMAGE_UYVY);
            status = vxGetStatus((vx_reference)obj->csitx_output_image);
            if(status != VX_SUCCESS)
            {
                APP_PRINTF("[TEST] fail to create obj->csitx_output_image\n");
            }
            else
            {
                APP_PRINTF("[TEST] success to create obj->csitx_output_image\n");
            }
    
            obj->csitx_image_arr = vxCreateObjectArray(obj->context, (vx_reference)obj->csitx_output_image, num_capture_frames);
            APP_PRINTF("[TEST] num_capture_frames: %d\n", num_capture_frames);
    
            status = vxGetStatus((vx_reference)obj->csitx_image_arr);
            if(status != VX_SUCCESS)
            {
                APP_PRINTF("[TEST] fail to create obj->csitx_image_arr\n");
            }
            else
            {
                APP_PRINTF("[TEST] success to create obj->csitx_image_arr\n");
            }
    
            obj->display_m2m_output_image = (vx_image)vxGetObjectArrayItem(obj->csitx_image_arr, 0);
            status = vxGetStatus((vx_reference)obj->display_m2m_output_image);
            if(status != VX_SUCCESS)
            {
                APP_PRINTF("[TEST] fail to get obj->display_m2m_output_image\n");
            }
            else
            {
                APP_PRINTF("[TEST] success to get obj->display_m2m_output_image\n");
            }
            
            obj->display_m2m_param_obj = vxCreateUserDataObject(obj->context, "tivx_display_m2m_params_t", sizeof(tivx_display_m2m_params_t), &obj->display_m2m_params);
            status = vxGetStatus((vx_reference)obj->display_m2m_param_obj);
            if(status != VX_SUCCESS)
            {
                APP_PRINTF("[TEST] fail to create obj->display_m2m_param_obj\n");
            }
            else
            {
                APP_PRINTF("[TEST] success to create obj->display_m2m_param_obj\n");
            }
    
            obj->displaym2mNode = tivxDisplayM2MNode(obj->graph, obj->display_m2m_param_obj, ldc_in_image, obj->display_m2m_output_image);
    
            vx_bool replicate[] = { vx_false_e, vx_false_e, vx_true_e };  // replicate displaym2m_output so that framework created buffer for the object array, because csitx node uses object array as input
            vxReplicateNode(obj->graph, obj->displaym2mNode, replicate, 3 );
    
            if(status == VX_SUCCESS)
            {
                status = vxSetNodeTarget(obj->displaym2mNode, VX_TARGET_STRING, TIVX_TARGET_DISPLAY_M2M1);
            }
    
            if(status == VX_SUCCESS)
            {
                status = tivxSetNodeParameterNumBufByIndex(obj->displaym2mNode, 2u, obj->num_cap_buf);
            }
    
            // CSI-TX
            {
                obj->csitx_node = tivxCsitxNode(obj->graph, obj->csitx_config, obj->csitx_image_arr);
    #if 1
                vxSetNodeTarget(obj->csitx_node, VX_TARGET_STRING, TIVX_TARGET_CSITX);
    #else
                vxSetNodeTarget(obj->csitx_node, VX_TARGET_STRING, TIVX_TARGET_CSITX2);
    #endif
            }
    #endif

    更改后、检查 GRAGE_2输出中的缓冲区。

    此致、
    Gokul

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

    尊敬的 Gokul:

    感谢你的帮助。

    我尝试添加您的更改、然后检查了 single_cam_graph_2_pipe_img.txt 文件

    更改有效、如下面的日志所示。

    d_28 [shape=record , label="{image_113 | [in] object_array_112 | size 16588800 | desc 28}"]
    d_27 [shape=record , label="{object_array_112 | desc 27}"]
    d_28 -> d_27 [style=dashed]
    d_51 [shape=record , label="{object_array_153 | desc 51}"]
    d_51 -> d_data_ref_q_162
    d_52 [shape=record , label="{image_154 | [in] object_array_153 | size 16588800 | desc 52}"]
    d_51 [shape=record , label="{object_array_153 | desc 51}"]
    d_52 -> d_51 [style=dashed]
    d_53 [shape=record , label="{object_array_155 | desc 53}"]
    d_53 -> d_data_ref_q_162
    d_54 [shape=record , label="{image_156 | [in] object_array_155 | size 16588800 | desc 54}"]
    d_53 [shape=record , label="{object_array_155 | desc 53}"]
    d_54 -> d_53 [style=dashed]
    d_55 [shape=record , label="{object_array_157 | desc 55}"]
    d_55 -> d_data_ref_q_162
    d_56 [shape=record , label="{image_158 | [in] object_array_157 | size 16588800 | desc 56}"]
    d_55 [shape=record , label="{object_array_157 | desc 55}"]
    d_56 -> d_55 [style=dashed]
    [label=" replicated"]

    但当我按下面所示单摄像头应用函数中的"S"来验证 csitx_output_image 时。

    它仍然接收不像全绿色那样的信息图像。

    =========================
    演示:带2A 的单摄像头
    =========================

    P:打印性能统计数据

    S:将传感器原始图像、VISS Output 和 H3A Output Image to File System (将 VISS 输出和 H3A 输出图像保存到文件系统)

    E:出口业绩统计

    U:从文件系统更新 DCC


    X:退出

    在示例下、在 app_single_cam_main.c 上的保存调试映像函数中添加了一些测试映像代码  

    int save_debug_images(AppObj *obj)
    {
        int num_bytes_io = 0;
        static int file_index = 0;
        char raw_image_fname[MAX_FNAME];
        char yuv_image_fname[MAX_FNAME];
        char h3a_image_fname[MAX_FNAME];
        char failsafe_test_data_path[3] = "./";
        char * test_data_path = app_get_test_file_path();
        struct stat s;
    
        if(NULL == test_data_path)
        {
            printf("Test data path is NULL. Defaulting to current folder \n");
            test_data_path = failsafe_test_data_path;
        }
    
        if (stat(test_data_path, &s))
        {
            printf("Test data path %s does not exist. Defaulting to current folder \n", test_data_path);
            test_data_path = failsafe_test_data_path;
        }
    
        if(NULL == obj->capt_yuv_image)
        {
            snprintf(raw_image_fname, MAX_FNAME, "%s/%s_%04d.raw", test_data_path, "img", file_index);
            printf("RAW file name %s \n", raw_image_fname);
            num_bytes_io = write_output_image_raw(raw_image_fname, obj->raw);
            if(num_bytes_io < 0)
            {
                printf("Error writing to RAW file \n");
                return VX_FAILURE;
            }
    
            snprintf(yuv_image_fname, MAX_FNAME, "%s/%s_%04d.yuv", test_data_path, "img_viss", file_index);
            printf("YUV file name %s \n", yuv_image_fname);
            num_bytes_io = write_output_image_nv12_8bit(yuv_image_fname, obj->y8_r8_c2);
            if(num_bytes_io < 0)
            {
                printf("Error writing to VISS NV12 file \n");
                return VX_FAILURE;
            }
    
            snprintf(h3a_image_fname, MAX_FNAME, "%s/%s_%04d.bin", test_data_path, "h3a", file_index);
            printf("H3A file name %s \n", h3a_image_fname);
            num_bytes_io = write_h3a_image(h3a_image_fname, obj->h3a_aew_af);
            if(num_bytes_io < 0)
            {
                printf("Error writing to H3A file \n");
                return VX_FAILURE;
            }
    
    #ifdef APP_USE_CSITX
            snprintf(yuv_image_fname, MAX_FNAME, "%s/%s_%04d.yuv", test_data_path, "m2m", file_index);
            printf("M2M file name %s \n", yuv_image_fname);
            num_bytes_io = write_output_image_yuv422_8bit(yuv_image_fname, obj->display_m2m_output_image);
            if(num_bytes_io < 0)
            {
                printf("Error writing to M2M YUV file \n");
                return VX_FAILURE;
            }
    
            snprintf(yuv_image_fname, MAX_FNAME, "%s/%s_%04d.yuv", test_data_path, "csitx", file_index);
            printf("CSITX file name %s \n", yuv_image_fname);
            num_bytes_io = write_output_image_yuv422_8bit(yuv_image_fname, obj->csitx_output_image);
            if(num_bytes_io < 0)
            {
                printf("Error writing to CSITX YUV file \n");
                return VX_FAILURE;
            }
    #endif /* APP_USE_CSITX */
        }
        else
        {
            vx_image cap_yuv;
            snprintf(raw_image_fname, MAX_FNAME, "%s/%s_%04d.yuv", test_data_path, "cap", file_index);
            printf("YUV file name %s \n", raw_image_fname);
            cap_yuv = (vx_image)vxGetObjectArrayItem(obj->cap_frames[0], 0);
            num_bytes_io = write_output_image_yuv422_8bit(raw_image_fname, cap_yuv);
            if(num_bytes_io < 0)
            {
                printf("Error writing to YUV file \n");
                return VX_FAILURE;
            }
        }
    
        if(obj->scaler_enable)
        {
            snprintf(yuv_image_fname, MAX_FNAME, "%s/%s_%04d.yuv", test_data_path, "img_msc", file_index);
            printf("YUV file name %s \n", yuv_image_fname);
            num_bytes_io = write_output_image_nv12_8bit(yuv_image_fname, obj->scaler_out_img);
            if(num_bytes_io < 0)
            {
                printf("Error writing to MSC NV12 file \n");
                return VX_FAILURE;
            }
        }
    
        if(obj->ldc_enable)
        {
            snprintf(yuv_image_fname, MAX_FNAME, "%s/%s_%04d.yuv", test_data_path, "img_ldc", file_index);
            printf("YUV file name %s \n", yuv_image_fname);
            num_bytes_io = write_output_image_nv12_8bit(yuv_image_fname, obj->ldc_out);
            if(num_bytes_io < 0)
            {
                printf("Error writing to LDC NV12 file \n");
                return VX_FAILURE;
            }
        }
    
        file_index++;
        return (file_index-1);
    }
    #endif //_APP_DEBUG_

    您能帮我检查剂量它找不到什么错误吗?

    此外还附加  tivxExportGraphToDot 文件以供您参考。

    e2e.ti.com/.../0456.single_5F00_cam_5F00_graph_5F00_1_5F00_img.txte2e.ti.com/.../0456.single_5F00_cam_5F00_graph_5F00_2_5F00_pipe_5F00_img.txte2e.ti.com/.../0456.single_5F00_cam_5F00_graph_5F00_3_5F00_data_5F00_ref_5F00_q_5F00_img.txte2e.ti.com/.../0456.single_5F00_cam_5F00_graph_5F00_4_5F00_pipe0_5F00_img.txt

    谢谢、

    YL

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

    您好、Brijesh、

    接着更改代码 Gokul、

    找到日志中有打印差异地址、在1个循环中有4次地址。

    [MCU2_0] 101.744264 s:vx_zone_error:[tivxCsitxEnqueueFrameToDriver:293][TEST] CSITX:输入缓冲区地址0x1bcf000 0x9 0x9!!
    [MCU2_0] 101.769257 s:vx_zone_error:[tivxCsitxEnqueueFrameToDriver:293][TEST] CSITX:输入缓冲区地址0x7eb8000 0x9 0x9!!
    [MCU2_0] 101.794226s:vx_zone_error:[tivxCsitxEnqueueFrameToDriver:293][TEST] CSITX:输入缓冲区地址0x8e8a000 0x9 0x9!!
    [MCU2_0] 101.819249 s:vx_zone_error:[tivxCsitxEnqueueFrameToDriver:293][TEST] CSITX:输入缓冲区地址0x9e5c000 0x9 0x9!!

    这是你所期望的吗?

    谢谢、

    YL

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

    尊敬的 YL:

    是的、这很好、地址现在至少发生了变化、您仍然看到的只是绿色输出吗?  

    此致、

    Brijesh

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

    您好、Brijesh、

    遗憾的是、我仍然看到  SAVE_DEBUG_IMAGES 函数上的 csitx_output_image 的绿色输出。

    您能帮我检查剂量它找不到什么错误吗?

    谢谢、

    YL

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

    尊敬的 Chen:

    [引述 userid="637485" url="~/support/processors-group/processors/f/processors-forum/1503157/tda4al-q1-csi-tx-receive-incorrect-image/5782040 #5782040"]

    是否可以通过从 csitx_image_arr 中获取一个元素来保存 csitx 输出图像

    在上面的代码段中添加以下内容:

    [/报价]

    您是否在您的代码中完成了这些更改以保存图像、本质上 DISPLAY_M2M_OUTPUT_IMAGE 和 CSITx_OUTPUT_IMAGE 将是相同的。

    根据最新的图形、正确创建了输出缓冲区、没有问题。

    此致、
    Gokul

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

    尊敬的 Gokul:

    我使用解串器来验证 CSI TX、确保成功获取映像。

    感谢您的大力支持。

    Brijesh 也。

    谢谢、

    YL

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

    感谢您的更新、请关闭此主题。

    此致、
    Gokul