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.

[参考译文] TDA4VEN-Q1:自己添加新演示时、我遇到了编译错误、其中定义了对 xxxnode 的 ndefined 引用

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1515380/tda4ven-q1-when-adding-a-new-demo-myself-i-encountered-a-compilation-error-where-ndefined-reference-to-xxxnode

器件型号:TDA4VEN-Q1

工具/软件:

您好 TI

添加新演示后、我遇到"未定义对 xxxnode 的引用"编译错误、我正在使用 TI 的本机节点、只将.c.h节点的相关和文件复制到我的演示文件夹中。   TDA4 VEN 是否需要在 Makefile 中启用某些宏或添加 J722S 支持?   我的图形流水线是:Scale→Preproc→TIDL。   下面是我观察到的编译错误日志:

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

    您好、

    您是否将必要的库与演示应用程序(vx_kernels_img_proc 和 vx_kernels_video_io 库)链接。 错误显示未定义的函数、如果未使用这些函数、则将其从 main 中删除。

    此致、
    Gokul

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

    你(们)好

    我需要使用这两个库。  我已经将它们添加到我的演示中、但仍收到相同的错误。  我是以错误的方式或在错误的地方添加它们吗?  您能告诉我添加这些库的正确路径吗?  我使用的平台是 TDA4 VEN。  mak 文件、之后我还附加了我的相关代码。

    对于 vx_kernels_video_io 库、我看到它已添加到此路径中:
    "ti-processor-sdk-rtos-j722s-evm-10_01_00_04/vision_apps/apps/concerto_pu_inc.mak "我是否需要将其添加到其他任何位置?

    #ifeq ($(TARGET_CPU),A72 A53)
    ifeq ($(TARGET_CPU),$(filter $(TARGET_CPU), x86_64 A72 A53))
    #ifeq ($(TARGET_OS), $(filter $(TARGET_OS), LINUX QNX))
    
    include $(PRELUDE)
    
    TARGET      := invo_alg_model_post_TEST
    TARGETTYPE  := exe
    
    CSOURCES    := $(call all-c-files)
    CPPSOURCES  := $(call all-cpp-files)
    
    include $(VISION_APPS_PATH)/apps/concerto_mpu_inc.mak
    
    IDIRS += $(PSDK_PATH)/deploy/adas-lib/thirdparty/nlohmann/include
    LDIRS += $(PSDK_PATH)/deploy/binaries/common/lib
    LDIRS += $(PSDK_PATH)/deploy/binaries/od/lib
    
    IDIRS += $(RTE_IDIRS)
    IDIRS += $(IMAGING_IDIRS)
    IDIRS += $(VISION_APPS_APPLIBS_IDIRS)
    
    IDIRS += $(VISION_APPS_KERNELS_IDIRS)
    IDIRS += $(VISION_APPS_PATH)/apps/invo_apps/invo_alg_model_test/
    IDIRS += $(VISION_APPS_PATH)/kernels/img_proc/include
    
    IDIRS += $(PSDK_PATH)/deploy/binaries/common/include
    IDIRS += $(PSDK_PATH)/deploy/binaries/od/include
    IDIRS += $(PSDK_PATH)/deploy/binaries/psd/include
    IDIRS += $(PSDK_PATH)/deploy/ad-interface/include
    
    STATIC_LIBS += $(IMAGING_LIBS)
    STATIC_LIBS += $(VISION_APPS_KERNELS_LIBS)
    STATIC_LIBS += $(TIADALG_LIBS)
    STATIC_LIBS += vx_kernels_img_proc
    
    ifeq ($(TARGET_OS), $(filter $(TARGET_OS), LINUX))
    CFLAGS      += -DEGL_NO_X11
    CPPFLAGS    += --std=c++11
    SYS_SHARED_LIBS += gbm
    endif
    
    ifeq ($(TARGET_OS),QNX)
    SYS_SHARED_LIBS += screen
    endif
    
    SYS_SHARED_LIBS += EGL
    SYS_SHARED_LIBS += GLESv2
    
    #ifeq ($(SOC),j722s)
    #SKIPBUILD=1
    #endif
    
    include $(FINALE)
    
    endif

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

    我进行了全局搜索、发现编译后的库"vx_kernel_img_proc.lib "不存在。

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

    您好、

    它位于、

    我看到它已经添加在此路径中:
    "ti-processor-sdk-rtos-j722s-evm-10_01_00_04/vision_apps/apps/concerto_pu_inc.mak "我是否需要将其添加到其他任何位置?

    这没关系。 能否检查是否在 main.c 中和 app_display_M2M_module.c 中的 video_io_display_m2m.h 中包含 tivx_img_proc_kernels

    还要确认 SDK 中的默认演示是否构建没有任何问题?

    此致、
    Gokul

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

    您好:

    "链接到的问题tivx_img_proc_kernels已解决。
    我通过添加来修复它 j722s中的以下行中所示 ti-processor-sdk-rtos-j722s-evm-10_01_00_04/vision_apps/kernels/img_proc/host/concerto.mak

    Makefile
    ifeq ($(SOC)$(FILTER $(SOC)、j721e2 j784s4 j742s2 j722s)) 

    下面我将提供我所做更改的屏幕截图。

    但是、VIDEO_IO_DISPLAY_M2M 问题仍未解决。


    尽管我包含video_io_display_m2m.h在中app_display_m2m_module.c、但我仍然遇到了错误。 我将附加错误日志以供参考。

    以下是我所做的修改:

    1. 指定 ti-processor-sdk-rtos-j722s-evm-10_01_00_04/video_io/build_flags.mak

    • else ifeq ($(SOC)、j722s) 
      BUILD_VIDEO_IO_kernels?=yes 
      BUILD_CAPTURE?=yes 
      BUILD_CSITX?=yes 
      Build_display?=yes 
      BUILD_DISPLAY_M2M?=yes 
    • 指定 /home/qixueni/work/VEN_TDA4/ti-processor-sdk-rtos-j722s-evm-10_01_00_04/video_io/target.mak
      添加了J722S

    • ifeq ($(target_platform)$(FILTER $(target_platform)、J721E J721S2 J784S4 J742S2 AM62A J722S) 
    • 指定 /home/qixueni/work/VEN_TDA4/ti-processor-sdk-rtos-j722s-evm-10_01_00_04/video_io/kernels/video_io/display_m2m/concerto.mak
      添加了J722S

    1. ifeq ($(target_platform)$(filter $(target_platform)、J721E J721S2 J784S4 J742S2 J722S) 

    完成这些更改后、构建视频模块时仍然收到编译错误:

    /kernels/video_io/display_m2m/vx_display_m2m_target.c:74:10:致命错误:未找到"fvid2/fvid2.h"文件 

    这是否意味着 J722S 平台不支持display_m2m

    上面的绿色突出显示部分显示了我的修改。

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

    您好、

    J722s 不支持 DISPLAY_M2M、j722中的 DSS 子系统没有写回流水线。

    链接到的问题tivx_img_proc_kernels已解决。
    我通过添加来修复它 j722s中的以下行中所示 ti-processor-sdk-rtos-j722s-evm-10_01_00_04/vision_apps/kernels/img_proc/host/concerto.mak[/报价]

    此问题将在下一个 SDK 版本中得到修复。

    此致、
    Gokul

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

    你(们)好

    由于捕捉的输出采用 YUYV 格式、我们需要使用display_m2m将其转换为 NV12。 如果 J722S 不支持此功能display_m2m、是否有替代的高效节点可以代替?

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

    您好、

    请您再提出一个问题。

    谢谢。此致、
    Gokul

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

    您好:

    当我在 J722S 开发板上运行演示以生成.out 文件时、我还替换了相关文件:vx_app_rtos_linux_c7x_1.out、vx_app_rtos_linux_c7x_2.out 和 libtivision_apps.so.10.1.0。 但是、在电路板上运行时、会发生以下错误:

    为了修正上述错误、我发现在"ti-processor-sdk-rtos-j722s-evm-10_01_00_04/vision_apps/platform/j722s/rtos/common/app_init.c"中、函数 tivxRegisterImgProcTargetC66Kernels()  tivxUnRegisterImgProcTargetC66Kernels() 进行了注释。 然后、我取消评论、如下所示:

    #ifdef cpu_c7x_2 
    /* tivxRegisterSrvTargetC66Kernels();*/ 
    tivxRegisterHwaTargetArmKernels()
    tivxRegisterImgProcTargetC66Kernels()
    #ifdef cpu_c7x_2 
    /* tivxUnRegisterSrvTargetC66Kernels();*/ 
    /* tivxUnRegisterHwaTargetArmKernels();*/ 
    tivxUnRegisterImgProcTargetC66Kernels()
    #endif 
    更改后、编译会报告错误:
    我还将在下面分享两个未修改版本的屏幕截图。 您能否检查我的修改是否正确? 或者、J722S 平台是否需要对预处理节点协议进行特殊配置?
    仔细检查一下、 J722S 平台是否支持 Imgpreproc 节点?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    是的、J722s 不支持 img_proc 内核。

    这些内核上是否有任何用例?

    C66内核将不会针对 j722构建。

    在下一个 SDK 版本11.0中、某些 pre_proc 和 post_proc 内核被移至 a72、并且所有 dl 演示在 SDK 版本11.0中均受支持

    此致、
    Gokul

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

    您好:

    SDK 11.0是否已发布? 如果没有、计划发布日期是什么时候?
    这些内核确实有应用场景、我们通过预处理(pre_proc)将 NV12图像转换为 RGB 平面、然后将其输入到 TIDL 节点以进行模型推理。 如果 J722s SDK 10.1不支持此功能、可以使用哪些替代方法?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    1.它将于明天发布。

    2.这些内核将在 SDK 11.0中作为 a72内核提供、在10.1中没有其他替代方案。

    此致、
    Gokul