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.

RTOS/TDA2PXEVM: UART & Network logging problem

Part Number: TDA2PXEVM
Other Parts Discussed in Thread: SYSBIOS

Tool/software: TI-RTOS

Background:
We have the TDA2Px EVM with Fusion board. I am running Code Composer Studio 8.0.0.00016 on Windows 10 with Processor SDK RADAR 3.3.0.0 and Processor SDK VISION 3.3.0 installed in different subdirectories (i.e. C:/ti/PROCESSOR_SDK_VISION_03_03_00_00). Please see the numbered list of questions and context below.

UART output works from PDK uart_test_app:
I built the PDK uart_test_app (gmake -s csl_uart_test_app BOARD=tda2px-evm CORE=a15_0), and was able to communicate with the board over a USB/UART cable connected to the mini A/B USB marked Terminal on the board, using Port COM5 via Tera Term (115200 baud, 8 bits, no parity, 1 stop bit, no flow control). I used the same serial settings when I had connection problems below.

No UART output from sample_app / ipc_PATH warning:
When trying to build the sample_app initially, there was a fatal error:
    "system_ipc_bios_ipc.c", line 88: fatal error: cannot open source file "ti/ipc/Ipc.h"
Since then, I have used the Processor SDK VISION 3.3.0 installation, which appears to the be mostly the same as RADAR but includes the missing file(s). However, I still get a build warning that ipc_PATH is not set.
    "C:/ti/PROCESSOR_SDK_VISION_03_03_00_00/vision_sdk/apps/configs/autorules_footer_cfg.mk:78: ipc_PATH does not exist! ()"
The Processor SDK Radar User Guide FAQ says that is a harmless warning since this is an optional component. I could not get the UART to work with the sample_app.

1. Is the undefined ipc_PATH relevant to this UART communication problem?

No UART or Ethernet from tda2px_evm_bios_radar:
I didn't see any output over UART or Ethernet when building and running the tda2px_evm_bios_radar use case. For the initial attempt, I modified Rules.make (MAKEAPPNAME?=apps, MAKECONFIG?=tda2px_evm_bios_radar), and ran gmake -s -j depend followed by gmake -s -j in the vision_sdk/build directory. The build seemed to work fine except for the ipc_PATH warning mentioned above.

For my next attempts, I configured Ethernet to have static IP rather than DHCP, and set a manual IP4 address within the same subnet on my workstation. I can ping the EVM successfully. I set PROFILE=debug in tda2px_evm_bios_radar/cfg.mk. I enabled all the remote logging flags in vision_sdk/apps/configs/defaults.mk:
    ENABLE_UART_LOG=yes
    ENABLE_NETWORK_LOG=yes
    ENABLE_CCS_LOG=yes
    CIO_REDIRECT=yes

See configuration output below.

2. Is it OK to enable all of these remote logging flags at once (I believe so)?

I ran the network console tool with the default port settings (9000/9001), and started Tera Term, then launched the code in CCS via JTAG (XDS200) following the PDF instructions. There was no UART output except from the bootloader, and c:/ti/PROCESSOR_SDK_VISION_03_03_00_00/vision_sdk/apps/tools/network_tools/bin/network_cons.exe was unable to connect using the default port settings. I tried the above procedure again with network_cons.exe --ipaddr 192.168.1.200 --port 5000 5000, and network_cons was able to connect but never displayed any output.

3. What are the correct network_cons.exe settings for Tx, Rx ports?

4. How come Vps_printf() does not produce any output over UART, Ethernet, or to the CCS console?

CCS launch process:
The process of loading and starting the code from CCS is tedious (Connect to A15, run multicore initialization script, connect to all other cores, reset all cores, load files to each core individually, start each core individually...).

5.  Is there a good way to automate the CCS launch process, i.e. with a custom .gel script?

6. Can I load the programs for all cores from the SBL via the SD card and still set breakpoints in the debugger?

USB 3:
7. What support/examples are available for getting USB 3 working on this EVM? It appears that there is USB support available for other processors, but not the TDA2x family

Configuration output from gmake -s -j showconfig:

# Build Config is [ tda2px_evm_bios_radar ]
# Build Config file is @ C:/ti/PROCESSOR_SDK_VISION_03_03_00_00/vision_sdk/configs/tda2px_evm_bios_radar/cfg.mk
# Build Config .h file is @ C:/ti/PROCESSOR_SDK_VISION_03_03_00_00/vision_sdk/links_fw/include/config/apps/tda2px_evm_bios_radar/system_cfg.h
# Build CPUs is @ ipu1_0 ipu1_1 dsp1 eve1
#
# CPUs included in application,
# PROC_IPU1_0_INCLUDE=yes
# PROC_IPU1_1_INCLUDE=yes
# PROC_IPU2_INCLUDE=no
# PROC_DSP1_INCLUDE=yes
# PROC_DSP2_INCLUDE=no
# PROC_EVE1_INCLUDE=yes
# PROC_EVE2_INCLUDE=no
# PROC_EVE3_INCLUDE=no
# PROC_EVE4_INCLUDE=no
# PROC_A15_0_INCLUDE=no
#
# Platform config,
# VSDK_BOARD_TYPE=TDA2PX_EVM [options: TDA2XX_EVM TDA2EX_EVM TDA3XX_EVM TDA3XX_RVP TDA2XX_RVP]
# PLATFORM=tda2px-evm
# DUAL_A15_SMP_BIOS=no
# DDR_MEM=DDR_MEM_512M [options: DDR_MEM_128M DDR_MEM_512M DDR_MEM_1024M]
# NDK_PROC_TO_USE=ipu1_1 [options: a15_0 ipu1_0 ipu1_1 ipu2 none]
# NSP_TFDTP_INCLUDE=yes [options: yes no]
# TDA2EX_ETHSRV_BOARD=no [options: yes no]
# FATFS_PROC_TO_USE=ipu1_0 [options: ipu1_0 none]
# RADAR_BOARD=none [options: TDA3XX_AR12_ALPS TDA3XX_AR12_VIB_DAB_BOOSTER TDA3XX_RADAR_RVP none]
#
# Build config,
# BUILD_OS=Windows_NT [options: Windows_NT Linux]
# BUILD_DEPENDENCY_ALWAYS=no
# BUILD_ALGORITHMS=no
# BUILD_INFOADAS=no
# PROFILE=debug [options: debug release]
# KW_BUILD=no
# CPLUSPLUS_BUILD=no
# IPU_PRIMARY_CORE=ipu1_0 [options: ipu1_0 ipu2]
# IPU_SECONDARY_CORE=ipu2 [options: ipu1_0 ipu2]
# A15_TARGET_OS=Bios [options: Bios Linux Qnx]
# BSP_STW_PACKAGE_SELECT=all [options: all vps-iss-dss-only vps-vip-vpe]
#
# Safety Module config,
# RTI_INCLUDE=no
# ECC_FFI_INCLUDE=no
# DCC_ESM_INCLUDE=no
#
# Video Module config,
# IVAHD_INCLUDE=no
# VPE_INCLUDE=no
# CAL_INCLUDE=no
# ISS_INCLUDE=no
# ISS_ENABLE_DEBUG_TAPS=no
# WDR_LDC_INCLUDE=no
# DSS_INCLUDE=yes
#
# Open Compute config,
# OPENCL_INCLUDE=no
# TARGET_ROOTDIR=C:/ti/PROCESSOR_SDK_VISION_03_03_00_00/vision_sdk/apps/src/rtos/opencl
# ENABLE_OPENCV=no
# ENABLE_OPENCV_TESTS=no
# OPENVX_INCLUDE=no
#
# Log config,
# ENABLE_UART_LOG=yes
# ENABLE_NETWORK_LOG=yes
# ENABLE_CCS_LOG=yes
# CIO_REDIRECT=yes
#
# IPC config,
# WORKQ_INCLUDE=yes
# IPC_LIB_INCLUDE=yes
#
# Surround View config,
# SRV_FAST_BOOT_INCLUDE=no
#
# Other Module config,
# AVB_INCLUDE=no
# DCAN_INCLUDE=no
# RADAR_INCLUDE=yes
# CPU_IDLE_ENABLED=no
# FAST_BOOT_INCLUDE=no
# DATA_VIS_INCLUDE=no
# HS_DEVICE=no
# ULTRASONIC_INCLUDE=no
#
# Linux config,
# DEFAULT_UBOOT_CONFIG=dra7xx_evm_vision_config
# DEFAULT_KERNEL_CONFIG=ti_sdk_dra7x_release_defconfig
# DEFAULT_DTB=dra7-evm-infoadas.dtb
# CMEM_INCLUDE=no
# IPUMM_INCLUDE=no
# IPU1_EVELOADER_INCLUDE=no
# ROBUST_RVC_INCLUDE=no
# BUILD_ADAM_CAR=no
#
# Alg plugins included in build,
# ALG_radarprocess
#
# Use-cases included in build,
# UC_radar_read_fft_write
#
# vision_sdk_CFLAGS = -DTDA2PX_BUILD -DTDA2XX_FAMILY_BUILD -DSOC_TDA2PX -DPLATFORM_EVM_SI -D_DRA7xx -D_SC_VER_1_16 -D__sysbios__ -DTDA2XX_512MB_DDR -DUTILS_ASSERT_ENABLE -DFVID2_BACKWARD_COMPATIBLE -DUSE_STD_ASSERT -DTRACE_ENABLE -DASSERT_ENABLE -DENABLE_UART_LOG -DENABLE_NETWORK_LOG -DENABLE_CCS_LOG -D_GNU_SOURCE -DBOARD_TYPE_TDA2PX_EVM -DIPU_PRIMARY_CORE_IPU1 -DIPU_SECONDARY_CORE_IPU2 -DIPC_LIB_INCLUDE -DCIO_REDIRECT

(I added the vision_sdk_CFLAGS entry.)

Thanks for your help!

  • Hi ,

    1. Is the undefined ipc_PATH relevant to this UART communication problem?
    Ans: No this is not the issue for no prints on uart.

    5. Is there a good way to automate the CCS launch process, i.e. with a custom .gel script?
    Ans: there is a .js script in build/rtos/scripts which you need to look at to have it automated

    6. Can I load the programs for all cores from the SBL via the SD card and still set breakpoints in the debugger?
    Ans: Yes you can always do that , Ensure you remove the gel files from the CCS before launching CCS target

    Regards
    Chetan.M
  • Thanks for clarifying the above points. Can you please help by finding answers to the remaining questions in my original post?

    The biggest problem is that Vps_printf() does not produce output over UART, Ethernet, or the Code Composer Studio console (question 4 above). As a result, the example code does not display the menu as expected. What do you recommend to fix or debug that?

  • Hi,

    The following flags should not be enabled all at once. Only one method should be enabled.
    # ENABLE_UART_LOG=yes
    # ENABLE_NETWORK_LOG=yes
    # ENABLE_CCS_LOG=yes

    To have log to UART, please set "ENABLE_UART_LOG=yes", "ENABLE_NETWORK_LOG=no", and "ENABLE_CCS_LOG=no".
    Can you do a clean build with the new setting and see if the main menu shows up in the terminal?

    Regards,
    Stanley
  • I retried with only ENABLE_UART_LOG set as recommended above and did a clean build. However, I get the same result: I see UART traffic from the bootloader when the board is reset over UART 1 labelled terminal, but no UART communication from the application once it is loaded and run through CCS/XDS200. As a result, I can't run any of the example app use-cases. I need help to resolve this issue quickly due to a critical deadline.

    Thanks.
  • If you are booting/loading executables from CCS, you should take the SD card out so the MLO doesn't start first from SD card. The GEL file in CCS will initialize the system once connected.

    If you want to boot MLO from SD Card, you should also put the AppImage in the SD card so everything will load and run from SD card.
    After the system start running and you see the main menu, you can then connect CCS but make sure no GEL file is loaded so the system is not reinitialized again when connect.

    Regards,
    Stanley
  • Based on Stanley's recommendation, I removed the SD card when testing functionality when loading code from CCS. I also tried automating the load process based on the launch_visionsdk_tda2px.js with minor modifications, as detailed in a separate thread.

    Regardless of anything I have tried, I still see no UART or TCP/IP output when I load the code from CCS, which is how I would ideally like to work when debugging the system. I would strongly welcome any suggestions, as I have been struggling with this issue for a long time now.

    Thanks.

  • Did you update TDA2Px_multicore_reset.gel and set "VISION_SDK_CONFIG" macro to 1?
    If not, please do that and reload the gel file.

    Regards,
    Stanley
  • Hi Stanley,

    I had NOT edited TDA2Px_multicore_reset.gel to set "VISION_SDK_CONFIG" = 1, and doing that solved my problem! I can now load code through CCS and get UART and TCP/IP Ethernet connectivity using network_rx.exe and network_tx.exe as expected, which is great news.

    I see that the VisionSDK_UserGuide_TDA2xx.pdf says to do this but VisionSDK_UserGuide_TDA2px.pdf (which I assumed was most relevant) does not, and should be updated.

    Thanks for your help!
  • Sorry for the confusion. We will update the TDA2Px user guide. Thanks.