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.

[参考译文] J721EXSOMXEVM:为 TDA4VM EVM 编译 edgeai-gst-apps

Guru**** 2926660 points

Other Parts Discussed in Thread: TDA4VM

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1651477/j721exsomxevm-compiling-edgeai-gst-apps-for-tda4vm-evm

器件型号: J721EXSOMXEVM
Thread: TDA4VM 中讨论的其他器件

您好、

我尝试对运行 SDK Linux 和 SDK RTOS 11.02 的 TDA4VM EVM (J721EXSOMG01EVM) 编译和使用 edgeai-gst-apps 和 OptiFlow。 但是、我收到以下错误、并想确认是否需要更改此过程中的任何内容。

我迄今所做的工作:

  1. 安装 PSDK Linux 版本:11.02.00.04  
  2. 编译并刷写 PSDK RTOS 版本:11.02.00.06
  3. 测试 Vision Apps 是否正常工作
  4. 克隆 edgeai-gst-apps
  5. 克隆 edgeai-tidl-tools
  6. 克隆 edgeai-gst-plugins

我尝试过的错误和解决方案。

  1. 从 edgeai-gst-apps 运行 setup_script.sh 时、我会获得以下输出  
    root@j721e-evm:/opt/edgeai-gst-apps# ./setup_script.sh 
    edgeai-apps-utils
    -- The C compiler identification is GNU 13.4.0
    -- The CXX compiler identification is GNU 13.4.0
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler: /usr/bin/cc - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler: /usr/bin/c++ - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- CMAKE_BUILD_TYPE = Release PROJECT_NAME = edgeai-apps-utils
    SOC=j721e
    TARGET_CPU=A72
    -- Configuring done (1.2s)
    -- Generating done (0.0s)
    -- Build files have been written to: /opt/edgeai-apps-utils/build
    [ 22%] Building C object CMakeFiles/edgeai-apps-utils.dir/src/edgeai_dl_pre_proc_armv8_utils.c.o
    [ 22%] Building C object CMakeFiles/edgeai-apps-utils.dir/src/edgeai_dl_color_convert_armv8_utils.c.o
    [ 33%] Building C object CMakeFiles/edgeai-apps-utils.dir/src/edgeai_dl_scaler_armv8_utils.c.o
    [ 44%] Building C object CMakeFiles/edgeai-apps-utils.dir/src/edgeai_nv12_drawing_utils.c.o
    [ 55%] Building C object CMakeFiles/edgeai-apps-utils.dir/src/edgeai_nv12_font_utils.c.o
    [ 66%] Building C object CMakeFiles/edgeai-apps-utils.dir/src/edgeai_perf_stats_utils.c.o
    [ 77%] Building C object CMakeFiles/edgeai-apps-utils.dir/src/edgeai_overlay_perf_stats_utils.c.o
    /opt/edgeai-apps-utils/src/edgeai_overlay_perf_stats_utils.c: In function 'overlay_graph':
    /opt/edgeai-apps-utils/src/edgeai_overlay_perf_stats_utils.c:209:25: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
      209 |         char *cpuName = appIpcGetCpuName(j);
          |                         ^~~~~~~~~~~~~~~~
    /opt/edgeai-apps-utils/src/edgeai_overlay_perf_stats_utils.c: In function 'overlay_text':
    /opt/edgeai-apps-utils/src/edgeai_overlay_perf_stats_utils.c:422:25: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
    
    
    ****   LOTS OF BUILD WARNINGS   ********
    
    
    /opt/edgeai-apps-utils/src/edgeai_dl_pre_proc_armv8_utils.c: In function 'dlPreProcess_NV12_image':
    /opt/edgeai-apps-utils/src/edgeai_dl_pre_proc_armv8_utils.c:15112:54: note: 'V_s' was declared here
    15112 |                             int32x4_t U_f, U_s, V_f, V_s;
          |                                                      ^~~
    [100%] Linking C shared library /opt/edgeai-apps-utils/lib/Release/libedgeai-apps-utils.so
    [100%] Built target edgeai-apps-utils
    [100%] Built target edgeai-apps-utils
    Install the project...
    -- Install configuration: "Release"
    -- Installing: /usr/lib/libedgeai-apps-utils.so.0.1.0
    -- Up-to-date: /usr/lib/libedgeai-apps-utils.so
    -- Up-to-date: /usr/include/edgeai-apps-utils/edgeai_arm_neon_utils.h
    -- Up-to-date: /usr/include/edgeai-apps-utils/edgeai_dl_color_convert_armv8_utils.h
    -- Up-to-date: /usr/include/edgeai-apps-utils/edgeai_dl_pre_proc_armv8_utils.h
    -- Up-to-date: /usr/include/edgeai-apps-utils/edgeai_dl_scaler_armv8_utils.h
    -- Up-to-date: /usr/include/edgeai-apps-utils/edgeai_image_params.h
    -- Up-to-date: /usr/include/edgeai-apps-utils/edgeai_nv12_drawing_utils.h
    -- Up-to-date: /usr/include/edgeai-apps-utils/edgeai_nv12_font_utils.h
    -- Up-to-date: /usr/include/edgeai-apps-utils/edgeai_overlay_perf_stats_utils.h
    -- Up-to-date: /usr/include/edgeai-apps-utils/edgeai_perf_stats_utils.h
    Cloning into 'edgeai-dl-inferer'...
    fatal: unable to access 'git.ti.com/.../': The requested URL returned error: 403
    Setup FAILED! : Make sure you have active network connection
    当前有效的解决方案:从https://git.ti.com/cgit/edgeai/edgeai-dl-inferer/'更改为 git:/git:/git.ti.com/edgeai/edgeai-dl-inferer.git  
  2. 切换到上述链接并再次运行设置时、出现以下错误  
    Cloning into 'edgeai-dl-inferer'...
    warning: Could not find remote branch EDGEAI_APP_STACK_11_02_00_00 to clone.
    fatal: Remote branch EDGEAI_APP_STACK_11_02_00_00 not found in upstream origin
    Setup FAILED! : Make sure you have active network connection
    
    解决方案:搜索分支/标签显示“EDGEAI_APP_STACK_11_02_00_00“不存在。 因此我自己从工作链接 (git 而不是 https) 克隆了分支并切换到主分支。 这使得脚本绕过 存储库的克隆、因为目录已经存在。
  3. 脚本完成克隆步骤并开始编译 dl-inferer 后、我收到以下错误  
    edgeai-dl-inferer
    -- The C compiler identification is GNU 13.4.0
    -- The CXX compiler identification is GNU 13.4.0
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler: /usr/bin/cc - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler: /usr/bin/c++ - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- CMAKE_BUILD_TYPE = Release PROJECT_NAME = edgeai_dl_inferer
    SOC=j721e
    -- CMAKE_BUILD_TYPE = Release PROJECT_NAME = edgeai_dl_inferer_python
    SOC=j721e
    -- CMAKE_BUILD_TYPE = Release PROJECT_NAME = edgeai_post_process
    SOC=j721e
    -- CMAKE_BUILD_TYPE = Release PROJECT_NAME = edgeai_pre_process
    SOC=j721e
    -- CMAKE_BUILD_TYPE = Release PROJECT_NAME = dump_model_info
    SOC=j721e
    -- CMAKE_BUILD_TYPE = Release PROJECT_NAME = app_dl_inferer_test
    SOC=j721e
    -- Configuring done (1.2s)
    -- Generating done (0.0s)
    -- Build files have been written to: /opt/edgeai-dl-inferer/build
    [  8%] Building CXX object post_process/CMakeFiles/edgeai_post_process.dir/src/ti_post_process.cpp.o
    [  8%] Building CXX object dl_inferer/CMakeFiles/edgeai_dl_inferer.dir/src/ti_dl_inferer.cpp.o
    [ 13%] Building CXX object post_process/CMakeFiles/edgeai_post_process.dir/src/ti_post_process_config.cpp.o
    /opt/edgeai-dl-inferer/post_process/src/ti_post_process_config.cpp:68:10: fatal error: yaml-cpp/yaml.h: No such file or directory
       68 | #include <yaml-cpp/yaml.h>
          |          ^~~~~~~~~~~~~~~~~
    compilation terminated.
    make[2]: *** [post_process/CMakeFiles/edgeai_post_process.dir/build.make:90: post_process/CMakeFiles/edgeai_post_process.dir/src/ti_post_process_config.cpp.o] Error 1
    make[1]: *** [CMakeFiles/Makefile2:214: post_process/CMakeFiles/edgeai_post_process.dir/all] Error 2
    make[1]: *** Waiting for unfinished jobs....
    [ 17%] Building CXX object dl_inferer/CMakeFiles/edgeai_dl_inferer.dir/src/ti_dl_inferer_config.cpp.o
    /opt/edgeai-dl-inferer/dl_inferer/src/ti_dl_inferer_config.cpp:67:10: fatal error: yaml-cpp/yaml.h: No such file or directory
       67 | #include <yaml-cpp/yaml.h>
          |          ^~~~~~~~~~~~~~~~~
    compilation terminated.
    make[2]: *** [dl_inferer/CMakeFiles/edgeai_dl_inferer.dir/build.make:90: dl_inferer/CMakeFiles/edgeai_dl_inferer.dir/src/ti_dl_inferer_config.cpp.o] Error 1
    make[2]: *** Waiting for unfinished jobs....
    make[1]: *** [CMakeFiles/Makefile2:188: dl_inferer/CMakeFiles/edgeai_dl_inferer.dir/all] Error 2
    make: *** [Makefile:136: all] Error 2
    

     

    如果我尝试直接从 edgeai-dl-inferer 目录进行编译、也会发生这种情况。

因此、我的问题是、我是否遗漏了其中的一些步骤?  

如何为 EVM 编译 edgeai 堆栈?

是否可以将 EVM 用于 Optiflow 工作流程?

TIA。

Charanjit