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.

PROCESSOR-SDK-TDAX: Build issues with QNX- with CFlags

Part Number: PROCESSOR-SDK-TDAX

Hello all,

I am using ti-processor-sdk-rtos-j721e-evm-07_01_00_11.

The PC simulation is successful. But, when trying to build with target, I am facing following issue (error log attached).

Below is my concerto.mak of A72 kernel.

#ifeq ($(TARGET_CPU), $(filter $(TARGET_CPU), x86_64 A72))
ifeq ($(TARGET_CPU), $(filter $(TARGET_CPU), A72 ))
ifeq ($(TARGET_OS),$(filter $(TARGET_OS), LINUX QNX))

include $(PRELUDE)
TARGET := vx_target_kernels_a72
TARGETTYPE := library
CSOURCES := $(call all-c-files)
CPPSOURCES := $(call all-cpp-files)

IDIRS += $(VISION_APPS_PATH)/kernels/MTCI_CC_Kernel/include
IDIRS += $(VISION_APPS_PATH)/kernels/MTCI_CC_Kernel/host
IDIRS += $(VISION_APPS_PATH)/kernels/MTCI_CC_Kernel/test
IDIRS += $(HOST_ROOT)/kernels/include
IDIRS += $(HOST_ROOT)/source/include
IDIRS += $(LINUX_FS_PATH)/usr/include
IDIRS += $(VXLIB_PATH)/packages


CFLAGS += -Wall
CFLAGS += -Wextra
CFLAGS += -Wpedantic
CFLAGS += -Werror
CFLAGS += -Wuninitialized
CFLAGS += -Wvla
CFLAGS += -coverage
CFLAGS += -opencv

CFLAGS += -ggdb
CFLAGS += -std=c++14
CFLAGS += -lcs50
CFLAGS += -lm

ifeq ($(TARGET_CPU), A72)
DEFS += CORE_A72
endif


ifeq ($(TARGET_CPU), $(filter $(TARGET_CPU), X86 x86_64))
DEFS += _HOST_BUILD _TMS320C6600 TMS320C66X HOST_EMULATION
endif

include $(FINALE)
endif
endif

Please help me in resolving the same.

Herewith I am attaching the error log when building in QNX.

/cfs-file/__key/communityserver-discussions-components-files/791/1300.error.log

Any support will be helpful!

Regards,

Padmasree N

  • Hi Padmasree,

    My apologies, but I'm not clear on what is being tested.  Can you please provide the make commands, and/or further details on what the build is attempting to accomplish.  

    General statement is that a Windows based build environnment for Processor SDK QNX 7.1 is not supported, TI verifies on Linux host only.

    From the log it seems that build is on Linux, and the provided error log is indicating 

    • -eq operator expected,
      • you may want to check the script to ensure this is not effecting the build
    • some required files cannot be found for an A72 - QNX build
      • Ensure the file are physically present on the filesystem
      • If they are on the filesystem check the build paths
      • If they are not on the filesystem, then focus on why those files have not been created.

    Thanks,

    kb

  • Hello KB,

    Thanks for your reply!

    The above said issues are resolved now and the executable got successfully generated. We will test on hardware and report issues if any.

    Meanwhile, please clear my below queries.

    1) What is the difference between CSOURCES := and CSOURCES += in the concerto?

    2) What is the difference between $(call all-c-files) and $(call allcfiles) in the concerto?

    Regards,

    Padmasree N.

  • Hi Padmasree,

    The PSDK RTOS release has some notes on concerto makefile systems, please take a read of the documentation at:

    8.1. Understanding concerto makefile system — Processor SDK RTOS J721E (ti.com)

    Regarding the "allcfiles", not familiar with this, can you provide reference to where it is being seen?

    Thanks,

    kb

  • Hello,

    Yes, I have already referred the document.

    But, it is not mentioned anything about two different macros of "CSOURCES :=" and "CSOURCES+=".

    And, the macro call all c files, is in the same concerto document you have mentioned.

    Regards,

    Padmasree N

  • Hi Padmasree,

    The aforementioned link defines the CSOURCES variable as below:

    If the question is on ":=" vs "+=", this is a 'make' convention, some online links below on this

    Setting Variables"-  :="  will overwrite the content of CSOURCES with the value specified.

    Appending to Variables - "+=" will append to the content of CSOURCES with the value specified.

    I am unable to find "$(call allcfiles)"  in the 7.3 SDK documentation or in source please provide a direct reference so I can respond. 

    The macro "$(call all-c-files) "

      call - is a GNU function Call Function (GNU make)

    The macro itself is explained in the README file of the concerto directory, for example reference .../vision_apps/concerto/README. 

    # list of c files c that exist inside this module (including any sub-directories)
    $(all-c-files)
    # list of c files c that exist in dir (including any sub-directories). dir is relative to the module directory
    $(call all-c-files-in,<dir>)

    The definition of the "all-c-files" can be found in concerto/definitions.mak

    As per the online documentation, the macro can optionally be replaced with a hardcoded list of .c files if that is desired.

    The intent is to populate CSOURCES with a list of C files.  

    Regards,

    kb

  • Hello KB,

    Thanks for your detailed explanation!

    I am now clear on CSOURCES.

    The query arose because when I compiled with call all-c-files, I got errors for which I have added CFlags in the concerto and got resolved.

    And, when I compiled with call allcfiles, without Cflags also,the build and output was succesfull.

    So, I needed to know why this happens.

    ALso, Please confirm me if CFLAGS does not create any isseu with target.

    Regards,

    Padmasree N.