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:所提供的值实际上并不是一个参考值

Guru**** 2465890 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1475165/tda4vm-supplied-value-was-not-actually-a-reference

器件型号:TDA4VM

工具与软件:

嗨、团队:

我正在使用 SDK 08_02_00_05 (Linux+RTOS)。

在测试应用程序时、我将看到以下错误日志。

root@j7-evm:/opt/vision_apps# ./btc_tpa_dl.out --cfg btc_tpa_dl.cfg 
APP: Init ... !!!
MEM: Init ... !!!
MEM: Initialized DMA HEAP (fd=4) !!!
MEM: Init ... Done !!!
IPC: Init ... !!!
IPC: Init ... Done !!!
REMOTE_SERVICE: Init ... !!!
REMOTE_SERVICE: Init ... Done !!!
    61.952107 s: GTC Frequency = 200 MHz
APP: Init ... Done !!!
    61.958635 s:  VX_ZONE_INIT:Enabled
    61.958652 s:  VX_ZONE_ERROR:Enabled
    61.958666 s:  VX_ZONE_WARNING:Enabled
    61.962714 s:  VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
    61.962886 s:  VX_ZONE_INIT:[tivxHostInitLocal:86] Initialization Done for HOST !!!
Default param set! 
Parsed user params! 
Updated user params! 
end app_init_res_resize, vx_status:0 
inside mesh img creation
resolution resize init Done! 
app_init_color_conv_RGB_NV12() : ENTERING 
app_init_color_conv_RGB_NV12() : EXITING 
color_conv_RGB_NV12 Done! 
[LDC-MODULE] configure_dcc_params() : ENTERING
[LDC-MODULE] configure_dcc_params() : Setting DCC config object to NULL! 
[LDC-MODULE] configure_dcc_params() : EXITING
LDC init done!
Scaler Init Done! 
Computing checksum at 0x0000FFFFA1DB2F00, size = 785072
TIDL Init Done! 
Pre Proc Update Done! 
Pre Proc Init Done! 
APP_INIT Number of Input Tensors in draw detections 1
rci postproc Update Done! 
rci postproc Init Done! 
App Init Done! 
I am inside app_create_graph_reso_res
  Before tivxResoResizeNode !
 tivxResoResizeNode after!
 Tensor releasing Start Done!
 Tensor releasing  Done!
  app_create_graph_res_resize graph done!
app_create_graph_color_conv_RGB_NV12() : ENTERING 
Color convert RGB_NV12 node create started
Color convert node RGB_NV12 create done 
app_create_graph_color_conv_RGB_NV12() : EXITING 
 app_create_graph_color_conv_RGB_NV12 graph done!
[LDC-MODULE] app_create_graph_ldc() : ENTERING 
[LDC-MODULE] app_create_graph_ldc() : DCC config object is NULL 
output image is NULL in ldc
    62.038711 s:  VX_ZONE_ERROR:[vxSetParameterByIndex:228] Supplied value was not actually a reference
    62.038721 s:  VX_ZONE_ERROR:[vxSetParameterByIndex:305] Specified: parameter[7] type:00000000 => (nil)
    62.038728 s:  VX_ZONE_ERROR:[vxSetParameterByIndex:307] Required: parameter[7] dir:1 type:0000080f
    62.038739 s:  VX_ZONE_ERROR:[ownReleaseReferenceInt:307] Invalid reference
    62.038746 s:  VX_ZONE_ERROR:[vxGetStatus:713] Reference is NULL
status:-7
[LDC-MODULE] Unable to create LDC node without DCC config! 
[LDC-MODULE] app_create_graph_ldc() : EXITING 
LDC graph done!
App Create Graph Done! 
App Run Graph Done! 
res resize delete done!
Color_conv_RGB_NV12 delete done!
LDC delete done!
App Delete Graph Done! 
Input image release Done! 
    62.038841 s:  VX_ZONE_ERROR:[ownReleaseReferenceInt:307] Invalid reference
res resize deinit done!
rgb to nv12 done!
LDC deinit done!
Scaler deinit Done! 
Pre-Proc deinit Done! 
TIDL deinit Done! 
Post_proc deinit Done! 
TIDL unload Done! 
ImgProc unload Done! 
RCIPostProc unload Done! 
Resolution Resize unload Done! 
HWA unload Done! 
    62.039379 s:  VX_ZONE_WARNING:[vxReleaseContext:1050] Found a reference 0xffffad795c28 of type 00000813 at external count 1, internal count 0, releasing it
    62.039387 s:  VX_ZONE_WARNING:[vxReleaseContext:1052] Releasing reference (name=object_array_104) now as a part of garbage collection
    62.039397 s:  VX_ZONE_WARNING:[vxReleaseContext:1050] Found a reference 0xffffad72e9a8 of type 0000080f at external count 1, internal count 0, releasing it
    62.039403 s:  VX_ZONE_WARNING:[vxReleaseContext:1052] Releasing reference (name=image_105) now as a part of garbage collection
    62.039428 s:  VX_ZONE_WARNING:[vxReleaseContext:1050] Found a reference 0xffffad6fc080 of type 00000816 at external count 1, internal count 0, releasing it
    62.039436 s:  VX_ZONE_WARNING:[vxReleaseContext:1052] Releasing reference (name=user_data_object_106) now as a part of garbage collection
    62.039457 s:  VX_ZONE_WARNING:[vxReleaseContext:1050] Found a reference 0xffffad72ec60 of type 0000080f at external count 1, internal count 0, releasing it
    62.039464 s:  VX_ZONE_WARNING:[vxReleaseContext:1052] Releasing reference (name=image_108) now as a part of garbage collection
    62.039485 s:  VX_ZONE_WARNING:[vxReleaseContext:1050] Found a reference 0xffffad790740 of type 0000080d at external count 1, internal count 0, releasing it
    62.039493 s:  VX_ZONE_WARNING:[vxReleaseContext:1052] Releasing reference (name=scalar_132) now as a part of garbage collection
Context released! 
App De-init Done! 
    62.039525 s:  VX_ZONE_INIT:[tivxHostDeInitLocal:100] De-Initialization Done for HOST !!!
    62.043893 s:  VX_ZONE_INIT:[tivxDeInitLocal:193] De-Initialization Done !!!
APP: Deinit ... !!!
REMOTE_SERVICE: Deinit ... !!!
REMOTE_SERVICE: Deinit ... Done !!!                                                                                   
IPC: Deinit ... !!!                                                                                                   
IPC: DeInit ... Done !!!                                                                                              
MEM: Deinit ... !!!                                                                                                   
MEM: Alloc's: 18 alloc's of 2513008 bytes                                                                             
MEM: Free's : 18 free's  of 2513008 bytes 
MEM: Open's : 0 allocs  of 0 bytes 
MEM: Deinit ... Done !!!
APP: Deinit ... Done !!!
root@j7-evm:/opt/vision_apps# 

附加我的 app_create_graph 函数。

static vx_status app_create_graph(AppObj *obj)
{
    vx_status status = VX_SUCCESS;
    vx_char output_file_name[APP_MAX_FILE_PATH];
    //vx_graph_parameter_queue_params_t graph_parameters_queue_params_list[2];
    //vx_int32 graph_parameter_index;
    obj->graph = vxCreateGraph(obj->context);
    status = vxGetStatus((vx_reference)obj->graph);

    if(status == VX_SUCCESS)
    {
        status = vxSetReferenceName((vx_reference)obj->graph, "OpenVxGraph");
    }

    if(status == VX_SUCCESS)
    {
        status = app_create_graph_res_resize(obj->graph, &obj->resResizeObj, obj->input.arr[0]);
        APP_PRINTF(" app_create_graph_res_resize graph done!\n");
    }
    if(status == VX_SUCCESS)
    {
        status = app_create_graph_color_conv_RGB_NV12(obj->graph, &obj->colorConvRGBNV12Obj, obj->resResizeObj.output_image_arr);
        APP_PRINTF(" app_create_graph_color_conv_RGB_NV12 graph done!\n");
    }

    vx_image src_image1 = (vx_image)vxGetObjectArrayItem(obj->colorConvRGBNV12Obj.dst_image_arr, 0);
    snprintf(output_file_name, APP_MAX_FILE_PATH, "%s/cc_output.bmp", obj->output_file_path);
    tivx_utils_save_vximage_to_bmpfile(output_file_name, src_image1);
    if(status == VX_SUCCESS)
    {
        status = app_create_graph_ldc(obj->graph, &obj->ldcObj, obj->colorConvRGBNV12Obj.dst_image_arr);
        APP_PRINTF("LDC graph done!\n");
    }
    if(status == VX_SUCCESS)
    {
        status = app_create_graph_scaler(obj->context, obj->graph, &obj->scalerObj, obj->ldcObj.output_arr);
    }
    if(status == VX_SUCCESS)
    {
        status = app_create_graph_pre_proc(obj->graph, &obj->preProcObj, obj->scalerObj.output[0].arr);
    }
    if(status == VX_SUCCESS)
    {
        status = app_create_graph_tidl(obj->context, obj->graph, &obj->tidlObj, obj->preProcObj.output_tensor_arr);
        APP_PRINTF("TIDL Create Done! \n");
    }
    if(status == VX_SUCCESS)
    {
        status = app_rci_create_graph_postproc(obj->graph, &obj->rcipostprocObj, obj->tidlObj.output_tensor_arr);
        APP_PRINTF("RCI Create Postproc Done!\n");
    }
    
    
    return status;
}

当我转储  obj->colorconvRGBNV12Obj.dst_image_arr 时 、输出不是预期的、但并非 NULL。 将转储装置连接在下方。

但是、将相同的信息传递给 下一个节点的 APP_CREATE_GRAPH_LDC 函数时、我将面临错误。

LDC 中的输出图像为 NULL
62.038711 s:vx_zone_error:[vxSetParameterByIndex:228]提供的值实际上不是参考
62.038721 s:vx_zone_error:[vxSetParameterByIndex:305]指定:parameter[7] type:00000000 =>(nil)
62.038728 s:vx_zone_error:[vxSetParameterByIndex:307]必需:parameter[7] dir:1 type:0000080f
62.038739 s:vx_zone_error:[ownReleaseReferenceInt:307]引用无效
62.038746 s:vx_zone_error:[vxGetStatus:713]参考为 NULL

这种行为的原因可能是什么? 如何解决此问题?

此致、

Chaitanya Prakash Uppala

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

    尊敬的 Prakash:

    似乎 ldcObj->output_arr 尚未正确创建、请检查是否 在 app_init_LDC()内调用 create_LDC_outputs()。 参数7指 output_img。

    此致、
    Gokul

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

    尊敬的 Gokul:

    感谢您的快速响应。

    [报价 userid="637485" url="~/support/processors-group/processors/f/processors-forum/1475165/tda4vm-supplied-value-was-not-actually-a-reference/5662026 #5662026"]

    检查是否在 APP_INIT_LDC ()内调用 create_LDC_outputs()。 参数7指 output_img。

    [报价]

    是的、正在调用它。

    默认参数设置!
    已解析的用户参数!
    已更新用户参数!
    end app_init_res_resize、vx_status:0
    内部网格图像创建
    分辨率调整初始化已完成!
    APP_INIT_COLOY_CONV_RGB_NV12():输入
    APP_INIT_COLOR_CONV_RGB_NV12():正在退出
    color_conv_rgb_NV12完成!
    [LDC-MODULE] Configure_DCC_params():正在输入
    [LDC-MODULE] Configure_DCC_params():将 DCC 配置对象设置为 NULL!
    [LDC-MODULE] Configure_DCC_params():正在退出
    退出 create_LDC_outputs 函数
    LDC 初始化完成!
    标量初始化已完成!
    在0x0000FFFF85A32F00处计算校验和、大小= 785072
    TIDL 初始化完成!
    预处理更新已完成!
    预处理初始化完成!
    APP_INIT 绘制检测中输入 Tensors 的数量1

    此致、

    Chaitanya Prakash Uppala

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

    尊敬的 Prakash:

     在调用 tivxVpacLdcNode ()之前打印 output_img 的状态值"status = vxGetStatus ((vx_reference) output_img);"

    此致、
    Gokul

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

    尊敬的 Gokul:

    请找到以下日志。

    app_create_graph_color_conv_rgb_NV12():正在退出
    APP_CREATE_graph_color_conv_RGB_NV12图形完成!
    [LDC-MODULE] APP_CREATE_graph_LDC ():正在输入
    [LDC-MODULE] APP_CREATE_graph_LDC():DCC config 对象为 NULL
    LDC 中的输出图像为 NULL
    51.506078 s:vx_zone_error:[vxGetStatus:713] Reference is NULL (参考为 NULL)
    打印输出图像的状态:-7
    51.506151 s:vx_zone_error:[vxSetParameterByIndex:228]提供的值实际上不是引用
    51.506159 s:vx_zone_error:[vxSetParameterByIndex:305]指定:parameter[7] type:00000000 =>(nil)
    51.506165 s:vx_zone_error:[vxSetParameterByIndex:307]必需:parameter[7] dir:1 type:0000080f
    51.506176 s:vx_zone_error:[ownReleaseReferenceInt:307]引用无效
    51.506182 s:vx_zone_error:[vxGetStatus:713] Reference is NULL (51.506182 s:vx_zone_error:[vxGetStatus:713]参考为 NULL)
    ldcObj->node:-7的状态
    [LDC-MODULE]无法在没有 DCC 配置的情况下创建 LDC 节点!
    [LDC-MODULE] APP_CREATE_graph_LDC ():正在退出
    LDC 图完成!

    此致、

    Chaitanya Prakash Uppala

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

    尊敬的 Prakash:

    如果它返回-7、则不会正确创建引用。

    回溯并打印状态、直至其成功变为0。  

    例如、 在创建 ldcObj->output_arr 的位置放置 print 语句。 检查是否已正确创建。 如果不能、则向下翻一层。

    此致、
    Gokul