Vision Apps User Guide
Build Instructions

IMPORTANT NOTES

  • Make sure additional components and network proxies are setup as mentioned in Build Environment Setup before proceeding to building PSDK RTOS
  • Make sure you dont skip any of the steps mentioned below
  • ${PSDKR_PATH} refers to the path where Processor SDK RTOS (PSDK RTOS) is installed
  • ${PSDKL_PATH} refers to the path where Processor SDK Linux (PSDK Linux) is installed
  • All folders like, pdk, tiovx, vision_apps mentioned in the user guide are relative to ${PSDKR_PATH} unless explicitly stated otherwise.
  • The build is tested on Ubuntu (x86_64) 18.04 system and may not work on earlier or later Ubuntu systems.
  • 20GB of free space is required to install and build PSDK RTOS
  • Make sure you have sudo access

Quick steps to build vision apps for Linux+TI-RTOS mode

  • Edit file tiovx/build_flags.mak and modify below variables
    BUILD_EMULATION_MODE=no
    BUILD_TARGET_MODE=yes
    BUILD_LINUX_A72=yes
    PROFILE=release
  • Do below to build the source code using pre-built libraries provided in the SDK installer, with "N" being the number of parallel threads
    cd vision_apps
    make vision_apps -jN
  • The RTOS, Linux executable are stored below
    vision_apps/out/J7/A72/LINUX/$PROFILE
    vision_apps/out/J7/R5F/SYSBIOS/$PROFILE
    vision_apps/out/J7/C66/SYSBIOS/$PROFILE
    vision_apps/out/J7/C71/SYSBIOS/$PROFILE

Additional steps required for HS devices in Linux+TI-RTOS mode

  • If developing for HS devices, the following binaries will need to be built and installed to the SD card. Please reference the developer note here for details on how to do so.
    /media/$(USER)/BOOT/tispl.bin
    /media/$(USER)/BOOT/tiboot3.bin
    /media/$(USER)/BOOT/u-boot.img
    /media/$(USER)/BOOT/sysfw.itb
    /media/$(USER)/rootfs/boot/fitImage

Quick steps to build vision apps for QNX+TI-RTOS mode

  • Make sure that you have the QNX SDP 7.0 installed in your PC as mentioned in Step 2b: Download and Install PSDK QNX addon to run in QNX+RTOS mode (Optional, only needed for QNX+RTOS mode)
  • Edit file tiovx/build_flags.mak and modify below variables
    BUILD_EMULATION_MODE=no
    BUILD_TARGET_MODE=yes
    BUILD_LINUX_A72=no
    BUILD_QNX_A72=yes
    PROFILE=release
  • Edit the file vision_apps/vision_apps_tools_path.mak and modify below variables
    QNX_BASE=<QNX SDP installation path>
  • Do below to build the source code using pre-built libraries provided in the SDK installer, with "N" being the number of parallel threads
    cd vision_apps
    make sdk -jN
  • The RTOS, QNX executables are stored below
    vision_apps/out/J7/A72/QNX/$PROFILE
    vision_apps/out/J7/R5F/SYSBIOS/$PROFILE
    vision_apps/out/J7/C66/SYSBIOS/$PROFILE
    vision_apps/out/J7/C71/SYSBIOS/$PROFILE
  • Depending on whether you have a GP or HS device and are using SBL build, you will need to build using one of the following commands. By default, these files are built for J7ES SR 1.1, but can be configured for J7ES SR 1.0 by referencing Makefile and configuration options :
    • Option 1: If building for SBL boot mode for GP devices, do below to build the required boot images
      cd vision_apps
      make qnx_fs_create
      make sbl_bootimage
    • Option 2: If building for SBL boot mode for HS devices, do below to build the required boot images
      cd vision_apps
      make qnx_fs_create
      make sbl_bootimage_hs

Quick steps to build vision apps for PC emulation mode

  • Edit file tiovx/build_flags.mak and modify below variables
    BUILD_EMULATION_MODE=yes
    BUILD_TARGET_MODE=no
  • Do below to build the source code,
    cd vision_apps
    make sdk
  • The PC executables are stored below
    vision_apps/out/PC/x64_64/LINUX/$PROFILE

Quick steps to clean vision apps generated files

  • To do a clean build of vision_apps do below,
    cd vision_apps
    make vision_apps_scrub

Detailed steps to configure and build vision apps

Makefile and configuration options

  • Default makefile flag values are set to build the SDK properly. However below flags are recommended to be changed by users to speed up their build time, execution speed and/or configure what to build depending on their specific requirements.
  • Edit below variables in tiovx/build_flags.mak. These flags will affect both tiovx as well as vision_apps
Makefile flag Valid values (default value in bold) Description
PROFILE debug or release or all "debug" for debug only build,
"release" for release only build,
"all" for both debug and release builds
BUILD_TARGET_MODE yes or no "yes" to build for SoC platform. In case you are building only for PC keep this to "no"
BUILD_QNX_A72 yes or no "yes" if you want to build for QNX on A72. In case you are building for RTOS only mode or Linux + RTOS mode, keep this to "no"
BUILD_LINUX_A72 yes or no "yes" if you want to build for ARM Linux on A72. In case you are building for RTOS only mode or QNX + RTOS mode, keep this to "no"
BUILD_EMULATION_MODE yes or no "yes" to build for PC emulation mode. In case you are building only for SoC keep this to "no"
BUILD_CT_* yes or no "yes" to enable OpenVX conformance tests for specific group of tests (CT). Typically during development one would keep all to "no" and only enable the required tests in respective CT "test_main.h"
  • Edit below variables in vision_apps/vision_apps_build_flags.mak,
Makefile flag Valid values (default value in bold) Description
BUILD_CPU_<cpu name> yes or no "yes" if you want that CPU in your build, else keep it to "no".
Note, BUILD_CPU_MPU1, BUILD_CPU_MCU2_0 MUST be kept as "yes"
Note, If building for MCU1_0, please refer to the developer note here.
Note, if switching between building with BUILD_CPU_MCU1_0 turned on and off, you will need to re-install the bootfs and targetfs to the SD card as described here Step 1: Prepare SD card for boot (one time only).
BUILD_APP_TIRTOS_LINUX yes or no "yes" to build Linux+RTOS mode binaries for selected CPUs. Keep to "no" if you are not interested in Linux+RTOS binaries.
By default this is set to BUILD_LINUX_A72
BUILD_APP_TIRTOS_QNX yes or no "yes" to build QNX+RTOS mode binaries for selected CPUs. Keep to "no" if you are not interested in QNX+RTOS binaries.
By default this is set to BUILD_QNX_A72
J7ES_SR 1_1 or 1_0 1_1 to build SBL boot binaries for J7ES SR 1.1 or 1_0 to build for J7ES SR 1.0
  • Edit vision_apps/apps/basic_demos/app_tirtos/common/app_cfg*.h for additional build time configuration,
    Note, additional #define's are defined in these files, but only ones which typical users need to customize are listed below.
File #define Description
app_cfg.h ENABLE_IPC_<cpu name> #undef these to disable a CPU from the system, #define to enable in the system
Note, this must match the BUILD_CPU_<cpu name> vision_apps/vision_apps_build_flags.mak
app_cfg_mcu2_0.h ENABLE_DSS_HDMI #define this to enable HDMI display via Infotainment daughter card, make sure to #undef ENABLE_DSS_EDP and ENABLE_DSS_DSI as well; ethernet firmware must also be disabled by following these instructions How to disable ETHFW
app_cfg_mcu2_0.h ENABLE_DSS_EDP #define this to enable eDP display via base EVM, make sure to #undef ENABLE_DSS_HDMI and ENABLE_DSS_DSI as well. Issues have been reported when ethernet firmware is enabled and using certain eDP displays or using an eDP to HDMI adaptor. If issues are observed with an eDP display, try disabling ethernet firmware. Instructions can be found here How to disable ETHFW
app_cfg_mcu2_0.h ENABLE_DSS_DSI #define this to enable DSI display, make sure to #undef ENABLE_DSS_EDP and ENABLE_DSS_HDMI as well
app_cfg_mcu2_0.h ENABLE_DSS #undef this to disable display (both HDMI and eDP), if you don't have display panel or daughter card for display

Build vision apps without prebuilt libraries

  • Do below to see values of make configuration variables
    cd vision_apps
    make sdk_show_config
  • Do below to see additional make targets to do a granular SDK build
    cd vision_apps
    make sdk_help
  • Do below to build the full PSDK RTOS, with "N" being the number of parallel threads
    cd vision_apps
    make sdk -jN
  • Do below to clean the full PSDK RTOS
    cd vision_apps
    make sdk_scrub