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:TDA4VM:J721S2Board TIVxVpacUserVissNode 错误

Guru**** 2485985 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1431851/tda4vm-tda4vm-j721s2board-tivxvpacuservissnode-node-error

器件型号:TDA4VM

工具与软件:

我在使用 TIvxVpacUserVissNode 时遇到了一些异常。 创建 tivxVpacUserVissNode 节点时、它会成功返回、但会出现一些问题。  

日志如下:

管道参数设置已完成!
 应用程序创建图形完成!

0.000000 s:vx_zone_error:[ownContextSendCmd:875]命令确认消息返回失败 cmd_status:-7
0.000000 s:vx_zone_error:[ownNodeKernelInit:590]目标内核、对于节点 VISS_Processing、TIVX_CMD_NODE_CREATE 失败
0.000000 s:vx_zone_error:[ownNodeKernelInit:591]请确保已为此内核注册目标回调
0.000000 s:vx_zone_error:[ownNodeKernelInit:592]如果目标回调已注册、请确保此内核的 create 回调中没有出现错误
0.000000 s:vx_zone_error:[ownGraphNodeKernelInit:608] kernel init for node 1、kernel com.ti.hwa.vpac_user_vis....failed!!
0.000000 s:vx_zone_error:[vxVerifyGraph:2159] Node kernel init failed (0.000000 s:vx_zone_error:[vxVerifyGraph:2159]内核初始化失败
0.000000 s:vx_zone_error:[vxVerifyGraph:2213]图形验证失败
应用运行图已完成!

验证过程中发生异常、错误消息如下所示:

我可以询问导致此错误的原因是什么、如何解决它吗?

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

    您好!

    团队的一部分正在度假.. 请预计下周早些时候作出回应。

    此致、

    基尔西  

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

    您好!

    很难从该错误日志中找出、您是否看到来自 R5F 的任何故障消息? 它似乎创建失败,但不确定确切的原因. 您是否注册了所有 VPAC 内核? 您是否遵循单摄像头或多摄像头应用中给出的确切初始化序列?

    此致、

    Brijesh

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

    尊敬的靖远:

    您是否确定 在应用程序中为 VISS 内核使用 TIVX_TARGET_VPAC_VISS1目标 id? 因为 J721S2仅支持这一个。 从日志中可以看出、它似乎已成功注册到框架中。  如果您使用的是正确的目标 ID、能否签入您的应用?  

    此致、

    Brijesh

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

    您好!

    我确信我使用的目标 ID 是 TIVX_TARGET_VPAC_VISS1、  

    我所使用的 SDK 版本是 ti-processor-sdk-rtos-j721s2-evm-09_02/00_05

    vx_status app_create_graph_user_v2acc(vx_graph graph, userV2ACCObj *userV2accObj, vx_object_array raw_image_arr)
    {
        vx_status status = VX_SUCCESS;
        vx_bool viss_prms_replicate[] =
            {vx_false_e, vx_false_e, vx_true_e, vx_true_e, vx_false_e, vx_false_e, vx_true_e, vx_false_e, vx_false_e, vx_true_e, vx_false_e};
            
        vx_user_data_object isp_viss_in_item;
        tivx_raw_image raw_img = (tivx_raw_image)vxGetObjectArrayItem(raw_image_arr, 0);
    
        isp_viss_in_item = (vx_user_data_object)vxGetObjectArrayItem(userV2accObj->isp_viss_in[0], 0);
        if (vxGetStatus((vx_reference)isp_viss_in_item) != VX_SUCCESS)
        {
            VX_DEBUGE("isp_viss_in_item create failed\n");
            return VX_FAILURE;
        }
        userV2accObj->vissNode = tivxVpacUserVissNode(
                             graph,
                             userV2accObj->viss_configuration,
                            NULL,
                            /*(vx_user_data_object)isp_viss_in_item,*/
                            NULL,
                             raw_img,
                             NULL,
                             NULL,
                             userV2accObj->viss_nv12_out_img[0],
                             NULL,
                             NULL,
                             userV2accObj->h3a_aew_af,
                             NULL);
    
        if (vxGetStatus((vx_reference)userV2accObj->vissNode) != VX_SUCCESS)
        {
            VX_DEBUGE("vissNode create failed\n");
            return VX_FAILURE;
        }
    
        vxSetReferenceName((vx_reference)userV2accObj->vissNode, "VISS_Processing");
        vxSetNodeTarget(userV2accObj->vissNode, VX_TARGET_STRING, TIVX_TARGET_VPAC_VISS1);
        vxReplicateNode(graph, userV2accObj->vissNode, viss_prms_replicate, 11u);
    
        vxReleaseUserDataObject(&isp_viss_in_item);
        tivxReleaseRawImage(&raw_img);
    
        if(userV2accObj->en_out_viss_write == 1)
        {
            status = app_create_graph_user_viss_write_output(graph, userV2accObj);
        }  
    
        //uguzzi node create
        userV2accObj->node_aewb = tivxUguzziNode(graph,
                            userV2accObj->uguzzi_cfg_user_obj,
                            userV2accObj->dtpBufUserObject,
                            userV2accObj->h3a_viss_out[0],
                            userV2accObj->isp_uguzzi_out[0]
                            );
        vxSetNodeTarget(userV2accObj->node_aewb, VX_TARGET_STRING, TIVX_TARGET_IPU1_0);
    
        if (NULL != userV2accObj->node_aewb) 
        {
            vxSetReferenceName((vx_reference)userV2accObj->node_aewb, "2A_AlgNode");
        } else 
        {
            VX_DEBUGE("tivxUguzziNode returned NULL \n");
            return VX_FAILURE;
        }
        return status;
    
    }

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

    您好!

    根据 R5F 内核日志信息、似乎 vpac_user-viss 内核尚未成功注册

    [MCU2_0]   3610.221170 s: IM_SENSOR_CMD_CONFIG status(-1)
    [MCU2_0]   3610.221188 s: ImageSensor_RemoteServiceHandler: IM_SENSOR_CMD_CONFIG Done!==
    [MCU2_0]   3610.283555 s:  VX_ZONE_ERROR:[tivxCaptureCreate:1121] /home/hzhang37/second1TB/tda4sdk/ti-processor-sdk-rtos-j721s2-evm-09_02_00_05/video_io/kernels/video_io/capture/vx_capture_target.c->tivxCaptureCreate->1121: Enter!!!
    [MCU2_0]   3610.283826 s:  VX_ZONE_ERROR:[tivxCaptureCreate:1208] /home/hzhang37/second1TB/tda4sdk/ti-processor-sdk-rtos-j721s2-evm-09_02_00_05/video_io/kernels/video_io/capture/vx_capture_target.c->tivxCaptureCreate->1208: Capture Callback register!!!
    [MCU2_0]   3610.286916 s:  VX_ZONE_ERROR:[tivxCaptureCreate:1414] /home/hzhang37/second1TB/tda4sdk/ti-processor-sdk-rtos-j721s2-evm-09_02_00_05/video_io/kernels/video_io/capture/vx_capture_target.c->tivxCaptureCreate->1414: Exit!!!
    [MCU2_0]   3610.287913 s:  VX_ZONE_ERROR:[ownTargetKernelInstanceAlloc:126] kernel com.ti.hwa.vpac_user_viss has not been registered on this CPU
    [MCU2_0]   3610.287959 s:  VX_ZONE_ERROR:[ownTargetKernelInstanceAlloc:127] Please register this kernel on the appropriate target core
    [MCU2_0]   3610.287999 s:  VX_ZONE_ERROR:[ownTargetNodeDescNodeCreate:761] target_kernel_instance is NULL

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

    您好!

    是的、但它无法找到注册的内核、所以您是否使用了正确的目标内核名称?  

    此致、

    Brijesh

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

    您好!

    我确信我使用的目标 ID 是 TIVX_TARGET_VPAC_VISS1、

    我所使用的 SDK 版本是 ti-processor-sdk-rtos-j721s2-evm-09_02/00_05

    vx_status app_create_graph_user_v2acc(vx_graph graph, userV2ACCObj *userV2accObj, vx_object_array raw_image_arr)
    {
        vx_status status = VX_SUCCESS;
        vx_bool viss_prms_replicate[] =
            {vx_false_e, vx_false_e, vx_true_e, vx_true_e, vx_false_e, vx_false_e, vx_true_e, vx_false_e, vx_false_e, vx_true_e, vx_false_e};
            
        vx_user_data_object isp_viss_in_item;
        tivx_raw_image raw_img = (tivx_raw_image)vxGetObjectArrayItem(raw_image_arr, 0);
    
        isp_viss_in_item = (vx_user_data_object)vxGetObjectArrayItem(userV2accObj->isp_viss_in[0], 0);
        if (vxGetStatus((vx_reference)isp_viss_in_item) != VX_SUCCESS)
        {
            VX_DEBUGE("isp_viss_in_item create failed\n");
            return VX_FAILURE;
        }
        userV2accObj->vissNode = tivxVpacUserVissNode(
                             graph,
                             userV2accObj->viss_configuration,
                            NULL,
                            /*(vx_user_data_object)isp_viss_in_item,*/
                            NULL,
                             raw_img,
                             NULL,
                             NULL,
                             userV2accObj->viss_nv12_out_img[0],
                             NULL,
                             NULL,
                             userV2accObj->h3a_aew_af,
                             NULL);
    
        if (vxGetStatus((vx_reference)userV2accObj->vissNode) != VX_SUCCESS)
        {
            VX_DEBUGE("vissNode create failed\n");
            return VX_FAILURE;
        }
    
        vxSetReferenceName((vx_reference)userV2accObj->vissNode, "VISS_Processing");
        vxSetNodeTarget(userV2accObj->vissNode, VX_TARGET_STRING, TIVX_TARGET_VPAC_VISS1);
        vxReplicateNode(graph, userV2accObj->vissNode, viss_prms_replicate, 11u);
    
        vxReleaseUserDataObject(&isp_viss_in_item);
        tivxReleaseRawImage(&raw_img);
    
        if(userV2accObj->en_out_viss_write == 1)
        {
            status = app_create_graph_user_viss_write_output(graph, userV2accObj);
        }  
    
        //uguzzi node create
        userV2accObj->node_aewb = tivxUguzziNode(graph,
                            userV2accObj->uguzzi_cfg_user_obj,
                            userV2accObj->dtpBufUserObject,
                            userV2accObj->h3a_viss_out[0],
                            userV2accObj->isp_uguzzi_out[0]
                            );
        vxSetNodeTarget(userV2accObj->node_aewb, VX_TARGET_STRING, TIVX_TARGET_IPU1_0);
    
        if (NULL != userV2accObj->node_aewb) 
        {
            vxSetReferenceName((vx_reference)userV2accObj->node_aewb, "2A_AlgNode");
        } else 
        {
            VX_DEBUGE("tivxUguzziNode returned NULL \n");
            return VX_FAILURE;
        }
        return status;
    
    }

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

    您好!

     再次查看日志、我看到内核名称是"com.ti.hwa.vpac_ 用户 _viss"。 在已发布的 SDK 中、我们没有包含此名称的内核。 这是您添加的吗? 您能否在 SDK 中搜索该内核并查看其位置?

    此致、

    Brijesh

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

    我所使用的 SDK 版本是 ti-processor-sdk-rtos-j721s2-evm-09_02/00_05。

    在此版本中找不到名为 com.ti.hwa.vpac.user.viss'的内核。

    我们使用该内核  来实现 ISP 功能。 我们应该使用哪个内核来实现 ISP 功能

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

    尊敬的 Jingyuan Fu:

    此内核不是 SDK 版本的一部分。 如果您自己添加了此内核或它由 ISP 供应商提供、则必须将其注册到 OpenVX 框架中。 如果没有这种登记、它就不会起作用。  

    此致、

    Brijesh