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: How to include the time.h headers in pdk src code ?

Part Number: TDA4VM
Other Parts Discussed in Thread: SYSBIOS

Hi ,

I want to count the runtime of the code using the clock_gettime function in pdk directory and from the QNX website - clock_gettime() (qnx.com) I know it need to include the time.h header.

But it didn't work.

The patch is

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
diff --git a/PSDKRA/pdk_jacinto_08_02_00_21/packages/ti/drv/ipc/src/ipc_api.c b/PSDKRA/pdk_jacinto_08_02_00_21/packages/ti/drv/ipc/src/ipc_api.c
index ead5918c2..555272d52 100755
--- a/PSDKRA/pdk_jacinto_08_02_00_21/packages/ti/drv/ipc/src/ipc_api.c
+++ b/PSDKRA/pdk_jacinto_08_02_00_21/packages/ti/drv/ipc/src/ipc_api.c
@@ -54,6 +54,10 @@
#include "ipc_osal.h"
#include "ipc_utils.h"
#include "ipc_mailbox.h"
+#include <stdio.h>
+//#include <unistd.h>
+#include <stdlib.h>
+#include <time.h>
/* ========================================================================== */
/* Macros & Typedefs */
@@ -1377,6 +1381,7 @@ int32_t RPMessage_recv(RPMessage_Handle handle, void* data, uint16_t *len,
uint8_t skiplist = FALSE;
RPMessage_MsgElem *payload;
uint32_t key;
+ struct timespec now;
/* Fix ME TBD, skipping the null tests, as this function check's/error
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

And the error log of compilcation is

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
tda4@ubuntu:~/code/sdk8_2_qnx_2/PSDKRA/vision_apps$ make pdk -j1
SHELL=/bin/sh
TARGET_MAKEFILES=applibs/srv_bowl_lut_gen_applib/concerto.mak applibs/srv_calibration_applib/concerto.mak applibs/test/concerto.mak apps/basic_demos/app_c7x_kernel/c7x/concerto.mak apps/basic_demos/app_c7x_kernel/concerto.mak apps/basic_demos/app_csitx/concerto.mak apps/basic_demos/app_dof/concerto.mak apps/basic_demos/app_fd_exchange/concerto.mak apps/basic_demos/app_heap_stats/concerto.mak apps/basic_demos/app_hsm/concerto.mak apps/basic_demos/app_ipc/concerto.mak apps/basic_demos/app_ipc_share_mem/concerto.mak apps/basic_demos/app_linux_arm_opengl_mosaic/concerto.mak apps/basic_demos/app_load_test/concerto.mak apps/basic_demos/app_mcan/concerto.mak apps/basic_demos/app_mcan_fr_dbc/concerto.mak apps/basic_demos/app_mem/concerto.mak apps/basic_demos/app_multi_cam/concerto.mak apps/basic_demos/app_multi_cam_isp_x3c/concerto.mak apps/basic_demos/app_multi_cam_isp_x8b/concerto.mak apps/basic_demos/app_remote_log/concerto.mak apps/basic_demos/app_rtos_fileio/common/concerto.mak apps/basic_demos/app_rtos_fileio/mpu1/concerto.mak apps/basic_demos/app_sgmii_status/concerto.mak apps/basic_demos/app_single_cam/concerto.mak apps/basic_demos/app_stereo/concerto.mak apps/basic_demos/app_task_print/concerto.mak apps/basic_demos/app_test_framework/concerto.mak apps/basic_demos/app_viss/concerto.mak apps/basic_demos/app_vx_conformance/concerto.mak apps/basic_demos/app_vx_tutorial/concerto.mak apps/concerto.mak apps/cv_demos/app_sfm/concerto.mak apps/dl_demos/app_tidl/concerto.mak apps/dl_demos/app_tidl_avp/concerto.mak apps/dl_demos/app_tidl_avp2/concerto.mak apps/dl_demos/app_tidl_avp3/concerto.mak apps/dl_demos/app_tidl_avp4/concerto.mak apps/dl_demos/app_tidl_cam/concerto.mak apps/dl_demos/app_tidl_od/concerto.mak apps/dl_demos/app_tidl_od_cam/concerto.mak apps/dl_demos/app_tidl_seg/concerto.mak apps/dl_demos/app_tidl_seg_cam/concerto.mak apps/dl_demos/app_tidl_vl/concerto.mak apps/ptk_demos/app_common/concerto.mak apps/ptk_demos/app_dof_sfm_fisheye/concerto.mak apps/ptk_demos/app_lidar_ogmap/concerto.mak apps/ptk_demos/app_sde/concerto.mak apps/ptk_demos/app_sde_obstacle_detection/concerto.mak apps/ptk_demos/app_surround_radar_ogmap/concerto.mak apps/ptk_demos/app_valet_parking/concerto.mak apps/ptk_demos/applibs/applib_common/concerto.mak apps/ptk_demos/applibs/fused_ogmap_applib/concerto.mak apps/ptk_demos/applibs/lidar_ogmap_applib/concerto.mak apps/ptk_demos/applibs/ps_mapping_applib/concerto.mak apps/ptk_demos/applibs/radar_gtrack_applib/concerto.mak apps/ptk_demos/applibs/sde_ldc_applib/concerto.mak apps/ptk_demos/applibs/sde_multilayer_applib/concerto.mak apps/ptk_demos/applibs/sde_obstacle_detection_applib/concerto.mak apps/ptk_demos/applibs/sde_singlelayer_applib/concerto.mak apps/ptk_demos/applibs/sde_triangulate_applib/concerto.mak apps/ptk_demos/applibs/semseg_cnn_applib/concerto.mak apps/ptk_demos/applibs/ss_sde_detection_applib/concerto.mak apps/ptk_demos/applibs/surround_radar_ogmap_applib/concerto.mak apps/ptk_demos/applibs/surround_sfm_ogmap_applib/concerto.mak apps/srv_demos/app_srv_calibration/concerto.mak apps/srv_demos/app_srv_camera/concerto.mak apps/srv_demos/app_srv_fileio/concerto.mak kernels/common/target/concerto.mak kernels/fileio/arm/concerto.mak kernels/fileio/host/concerto.mak kernels/hsmspi/host/concerto.mak kernels/hsmspi/r5f/concerto.mak kernels/hsmspi/test/concerto.mak kernels/img_proc/a72/concerto.mak kernels/img_proc/c66/concerto.mak kernels/img_proc/c71/concerto.mak kernels/img_proc/host/concerto.mak kernels/img_proc/r5f/concerto.mak kernels/lidar/arm/concerto.mak kernels/lidar/host/concerto.mak kernels/mcan/host/concerto.mak kernels/mcan/r5f/concerto.mak kernels/mcan/test/concerto.mak kernels/park_assist/host/concerto.mak kernels/park_assist/target/concerto.mak kernels/sample/a72/concerto.mak kernels/sample/host/concerto.mak kernels/sample/r5f/concerto.mak kernels/srv/c66/concerto.mak kernels/srv/gpu/3dsrv/Tools/concerto.mak kernels/srv/gpu/3dsrv/concerto.mak kernels/srv/gpu/concerto.mak kernels/srv/host/concerto.mak kernels/srv/test/concerto.mak kernels/stereo/host/concerto.mak kernels/stereo/target/bam/concerto.mak kernels/stereo/target/concerto.mak kernels/stereo/test/concerto.mak modules/src/concerto.mak platform/j721e/linux/concerto.mak platform/j721e/qnx/concerto.mak platform/j721e/rtos/c66x_1/concerto.mak platform/j721e/rtos/c66x_2/concerto.mak platform/j721e/rtos/c7x_1/concerto.mak platform/j721e/rtos/common/concerto.mak platform/j721e/rtos/common_linux/concerto.mak platform/j721e/rtos/common_qnx/concerto.mak platform/j721e/rtos/concerto.mak platform/j721e/rtos/mcu1_0/concerto.mak platform/j721e/rtos/mcu1_1/concerto.mak platform/j721e/rtos/mcu2_0/concerto.mak platform/j721e/rtos/mcu2_1/concerto.mak platform/j721e/rtos/mcu3_0/concerto.mak platform/j721e/rtos/mcu3_1/concerto.mak utils/app_init/src/concerto.mak utils/console_io/src/concerto.mak utils/draw2d/src/concerto.mak utils/dss/src/concerto.mak utils/ethfw/src/concerto.mak utils/grpx/src/concerto.mak utils/hwa/src/concerto.mak utils/ipc/src/concerto.mak utils/iss/src/concerto.mak utils/itt_server/src/concerto.mak utils/mem/src/concerto.mak utils/misc/src/concerto.mak utils/mmc_sd/src/concerto.mak utils/network_api/src/concerto.mak utils/opengl/src/a72/concerto.mak utils/opengl/src/pc/concerto.mak utils/pcie/src/concerto.mak utils/perf_stats/src/concerto.mak utils/remote_service/src/concerto.mak utils/sciclient/src/concerto.mak utils/sciserver/src/concerto.mak utils/sensors/src/concerto.mak utils/udma/src/concerto.mak
undefined TIARMCGT_ROOT=
file TIARMCGT_LLVM_ROOT=$(PSDK_PATH)/ti-cgt-armllvm_1.3.0.LTS
file GCC_SYSBIOS_ARM_ROOT=$(PSDK_PATH)/gcc-arm-9.2-2019.12-x86_64-aarch64-none-elf
file CGT6X_ROOT=$(PSDK_PATH)/ti-cgt-c6000_8.3.7
file CGT7X_ROOT=$(PSDK_PATH)/ti-cgt-c7000_2.1.1.LTS
undefined GCC_WINDOWS_ROOT=
file GCC_LINUX_ROOT=/usr/
file GCC_QNX_ROOT=$(QNX_HOST)/usr/bin
#######################################################################
TARGET_COMBO=J7:FREERTOS:R5F:3:release:TIARMCGT_LLVM
HOST_ROOT=/home/tda4/code/sdk8_2_qnx_2/PSDKRA/vision_apps
HOST_COMPILER=TIARMCGT_LLVM
HOST_PLATFORM=PC
HOST_OS=LINUX
HOST_CPU=x86_64
HOST_ARCH=64
HOST_FAMILY=x86_64
HOST_NUM_CORES=16
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Please help analyze and provide how to code to solve this problem?

Best Regard.

  • The modification made is causing issues with the building of the MCU / DSP cores, which do not run QNX.  Please try the following:

    1) Back the change out

    2) Build to ensure everything is back to normal, and can be successfully built

    3) Make the same change to PSDKRA/psdkqa/pdk/packages/ti/drv/ipc/src/ipc_api.c.  This is the file that will be built for the A72 QNX.

    4) Try to build.  Note that you will also need to include <stdio.h> for the printf to work.

    If any issues occur, please post similar details to above post.

    Regards,

    kb

  • Hi KB,

    I have already make same change to psdkqa/pdk directory. The problem seems that non-A72 cpu could not find the definication in the headers. 

  • Hi,

    There are two instances of the ipc_api.c file,

    1. PSDKRA/psdkqa/pdk/packages/ti/drv/ipc/src/ipc_api.c
    2. PSDKRA/pdk_xx_xx_xx_xx/packages/ti/drv/ipc/src/ipc_api.c

    QNX specific changes should be made in (1). 

    The diff command provided above, indicates that code change is/was being made in (2) /PSDKRA/pdk_jacinto_08_02_00_21/packages/ti/drv/ipc/src/ipc_api.c.. 

    Regards,

    kb

  • Hi KB,

    I'm sure that the change has already sync to the psdkqa/pdk directory.

    Our git repository don't trace the psdkqa/pdk directory so it don't show in the git diff command, it will be copy from the pdk_xx_xx_xx_xx after each change.

  • If a repository process as described above is being used, then any QNX specific changes that are put into the pdk_xx_xx_xx_xx directory, must be enclosed with the QNX_OS build flag.

    For example:

    #ifdef QNX_OS

    #include <time.h>

    #endif

    Regards,

    kb