IWR1642BOOST: demo0005-mmwave-sdk-16xx build broken

Expert 1225 points

Replies: 5

Views: 91

Part Number: IWR1642BOOST

Windows 10, mmwave industrial tool box 3.2.0, mmwave-sdk-2.1.00.04

When I try to build the mmw_dss_16xx, the build fails with the following errors

line 793: Identifier  "MMWAVE_L3RAM_NUM_BANK" is undefined

line 793: Identifier  "MMWAVE_L3RAM_SHMEM_BANK_SIZE" is undefined

Could you suggest what needs to be done

5 Replies

  • Hi Krishna,

    The IWR1642 SDK Demo project i.e. demo0005-mmwave-sdk-16xx requires MMWAVE-SDK 2.0.0.4 as mentioned in the user guide and release notes.

    (You asked a similar question in the following thread also. Please read the Lab Release notes and User guide and use the exact SDK version mentioned in the Requirements section to build the code)
    e2e.ti.com/.../781623

    Regards
    -Nitin
  • In reply to Nitin Sakhuja:

    Thanks for pointing out the SDK dependency, normally in Software development cycle its an established practice that old code always builds with newer minor version releases.

    Leaving that aside, is there a way I can build it without downloading SDK 2.0 and installing it ( by any chance  the SDK 2.1 includes SDK 2.0 dependencies and can be used using some CCS feature - when I installed it for the first time, I  remember it showing two versions - may be I installed both at that time).  We have to stick with one development kitversion, as it will become unmanageable at a later stage. It may be easier for us to get this code built using the latest version and resolve it once for all.

    We are after this demo  as we are planning to use it as a reference default point cloud visualizer.

    I note that mmWaveRosDriver  also uses this code, the ROS driver release note  states that

    Features
     Compatible with TI mmWave SDK v2.1.0.4 out-of-box demo when using
    xWR1443 ES3.0 EVM or xWR1642 ES2.0 EVM

    Changes in Version 1.5
    The following is a list of changes compared to the previous release.
     Driver source code modified to work with out-of-box demo from TI mmWave
    SDK 2.1.0.4 (xWR1443 ES3.0 EVM or xWR1642 ES2.0 EVM only) or TI mmWave
    SDK 3.0.0.8 (IWR6843 ES1.0 EVM only)

    I don't understand the above statement in release notes, does it mean the code is modified to work with OOB demo which depends on older SDK or  OOB demo has been ported to latest SDK.

    Further the ROS driver setup guide states

    How do I Re-flash the TI mmWave EVM with Out-of-Box demo? (only if
    needed)


    If you are using a brand new TI mmWave EVM, it should come pre-flashed with the Out-of-Box Demo. If
    the EVM has been re-programmed with a different flash image or if you are running into issues you can
    follow these steps to re-flash the EVM with the Out-of-Box Demo.

    For xWR1642 EVM:
    Meta Image 1:
    {$MMWAVE_SDK_INSTALL_DIR}/packages/ti/demo/{$YOUR_DEVICE}/mmw/xwr16xx_mmw
    _demo.bin

    Does it mean this OOB demo i is built with SDK 2.1 or 2.0? Because the release note states that ROS driver is modified to work with OOB demo SDK 2.1.004.

    If the OOB demo can't be built with SDK 2.1, then it implies that demo found in this folder is built with SDK 2.0, Why would a OOB demo bin built with a previous SDK be packaged inside the demo folder of a newer SDK - it sounds contradictory.

    Please clarify.

  • In reply to Krishna Kumar4:

    It appears the OOB demo found inside SDK 2.1 folder has been built with SDK 2.1. I infer this from the following reasons.

    See attached images

    1. When the board was delivered it had a 2.0 Version of OOB demo

    When I tried to configure the board using the demovisualizer, I had to choose SDK 2.0 it will not allow me to choose SDK 2.1 - it will complain target board SDK is different.

    2. I have now reflashed the board with the bin file found inside SDK 2.1

    When I try to use the demo visualizer, I can no longer choose SDK 2.0, I have to choose SDK 2.1 .

    So the OOB demo CAN be built with SDK 2.1, please advise how.

  • In reply to Krishna Kumar4:

    Krishna,

    The OOB demo in SDK 2.1 builds with SDK 2.1 using the provided makefile. The CCS projectspecs are provided separately through TI Resource Explorer in mmWave Industrial Toolbox. We have not updated the 16xx - mmWave SDK Demo CCS project for SDK 2.1. You should be able to port the existing 16xx - mmWave SDK Demo CCS project by modifying the following lines in both mmw_dss_16xx.projectspec and mmw_mss_16xx.projectspec to point to SDK 2.1 and the corresponding XDC and BIOS versions listed in SDK 2.1 release notes.

    <!-- Project properties -->
    <property name="type" value="rtsc"/>
    <property name="products" value="com.ti.rtsc.SYSBIOS:6.53.02.00;com.ti.MMWAVE_SDK:2.0.0.04;"/>
    <property name="xdcToolsVersion" value="3.50.04.43_core"/>

    Make sure to physically delete any existing 16xx - mmWave SDK demo project from your workspace, re-import the new projectspecs and build both projects.

    Regards

    -Nitin
  • In reply to Nitin Sakhuja:

    Hello Nitin

    Thanks for your efforts in trying to resolve my issue.

    I tried changing the make file as you have suggested, the only property that needs changing in the makefile is com.ti.MMWAVE_SDK:2.0.0.04; to com.ti.MMWAVE_SDK:2.1.0.04;

    XDC and BIOS haven't changed in the new SDK .

    I re-imported as you suggested.

    The compilation of DSS fails due to undefined variables

    #define SOC_XWR16XX_DSS_L3RAM_SIZE MMWAVE_L3RAM_NUM_BANK*MMWAVE_SHMEM_BANK_SIZE /* Size of L3 RAM */  in sys_common_xwr16xx_dss.h

    referenced in line  793 of dss_data_path.c

    There is no change in this error even with your suggested make file change. I think the compiler is expecting a command line input for the MMWAVE_L3RAM_NUM_BANK and the SHMEM_BANK_SIZE ? like --define=MMWAVE_L3RAM_NUM_BANK=somevalue?  I am only guessing.

    MSS used to build before, now its broken after the make file change with the following error.

    Errors for mss build

    ===

    Building target: "xwr16xx_mmw_mss.xer4f"
    Invoking: ARM Linker
    "C:/ti/ti-cgt-arm_16.9.6.LTS/bin/armcl" -mv7R4 --code_state=16 --float_support=VFPv3D16 -me -O3 --define=SOC_XWR16XX --define=SUBSYS_MSS --define=DOWNLOAD_FROM_CCS --define=DebugP_ASSERT_ENABLED --define=_LITTLE_ENDIAN --define=MMWAVE_L3RAM_SIZE=0xC0000 -g --diag_warning=225 --diag_wrap=off --display_error_number --gen_func_subsections=on --enum_type=int --abi=eabi --obj_extension=.oer4f -z -m"xwr16xx_mmw_mss.map" --heap_size=0x800 --stack_size=0x800 -i"C:/ti/ti-cgt-arm_16.9.6.LTS/lib" -i"C:/ti/mmwave_sdk_02_01_00_04/packages/ti/control/mmwave/lib" -i"C:/ti/mmwave_sdk_02_01_00_04/packages/ti/control/mmwavelink/lib" -i"C:/ti/mmwave_sdk_02_01_00_04/packages/ti/drivers/crc/lib" -i"C:/ti/mmwave_sdk_02_01_00_04/packages/ti/drivers/dma/lib" -i"C:/ti/mmwave_sdk_02_01_00_04/packages/ti/drivers/esm/lib" -i"C:/ti/mmwave_sdk_02_01_00_04/packages/ti/drivers/gpio/lib" -i"C:/ti/mmwave_sdk_02_01_00_04/packages/ti/drivers/mailbox/lib" -i"C:/ti/mmwave_sdk_02_01_00_04/packages/ti/drivers/osal/lib" -i"C:/ti/mmwave_sdk_02_01_00_04/packages/ti/drivers/pinmux/lib" -i"C:/ti/mmwave_sdk_02_01_00_04/packages/ti/drivers/soc/lib" -i"C:/ti/mmwave_sdk_02_01_00_04/packages/ti/drivers/uart/lib" -i"C:/ti/mmwave_sdk_02_01_00_04/packages/ti/utils/cli/lib" -i"C:/ti/ti-cgt-arm_16.9.6.LTS/include" --reread_libs --disable_auto_rts --define=MMWAVE_L3RAM_SIZE=0xC0000 --diag_warning=225 --diag_wrap=off --display_error_number --warn_sections --xml_link_info="xwr16xx_mmw_mss_linkInfo.xml" --rom_model --unused_section_elimination=on -o "xwr16xx_mmw_mss.xer4f" "./cli.oer4f" "./mss_main.oer4f" "../mss_mmw_linker.cmd" "../r4f_linker.cmd" -l"configPkg/linker.cmd" -llibosal_xwr16xx.aer4f -llibesm_xwr16xx.aer4f -llibgpio_xwr16xx.aer4f -llibsoc_xwr16xx.aer4f -llibpinmux_xwr16xx.aer4f -llibcrc_xwr16xx.aer4f -llibdma_xwr16xx.aer4f -llibuart_xwr16xx.aer4f -llibmailbox_xwr16xx.aer4f -llibmmwavelink_xwr16xx.aer4f -llibmmwave_xwr16xx.aer4f -llibcli_xwr16xx.aer4f -lrtsv7R4_T_le_v3D16_eabi.lib -llibc.a
    <Linking>
    "../r4f_linker.cmd", line 19: error #10104: undefined symbol "MMWAVE_SHMEM_TCMA_NUM_BANK" used in expression
    "../r4f_linker.cmd", line 19: error #10104: undefined symbol "MMWAVE_SHMEM_BANK_SIZE" used in expression
    "../r4f_linker.cmd", line 20: error #10104: undefined symbol "MMWAVE_SHMEM_TCMB_NUM_BANK" used in expression
    "../r4f_linker.cmd", line 20: error #10104: undefined symbol "MMWAVE_SHMEM_BANK_SIZE" used in expression
    "../r4f_linker.cmd", line 21: error #10343-D: Expecting expression starting with integer, unary operator, or '(' instead of "MMWAVE_L3RAM_NUM_BANK".
    "../r4f_linker.cmd", line 21: error #10080-D: length not specified for memory range L3_RAM
    "../r4f_linker.cmd", line 21: error #10024-D: expecting memory range specifier instead of "*"
    "../r4f_linker.cmd", line 21: error #10079-D: origin not specified for memory range MMWAVE_L3RAM_NUM_BANK
    "../r4f_linker.cmd", line 21: error #10080-D: length not specified for memory range MMWAVE_L3RAM_NUM_BANK
    "../r4f_linker.cmd", line 21: error #10264: MMWAVE_L3RAM_NUM_BANK memory range overlaps existing memory range VECTORS
    "../r4f_linker.cmd", line 21: error #10079-D: origin not specified for memory range MMWAVE_SHMEM_BANK_SIZE
    "../r4f_linker.cmd", line 21: error #10080-D: length not specified for memory range MMWAVE_SHMEM_BANK_SIZE
    "../r4f_linker.cmd", line 21: error #10264: MMWAVE_SHMEM_BANK_SIZE memory range overlaps existing memory range VECTORS
    error #10010: errors encountered during linking; "xwr16xx_mmw_mss.xer4f" not built

    >> Compilation failure
    makefile:161: recipe for target 'xwr16xx_mmw_mss.xer4f' failed
    gmake[2]: *** [xwr16xx_mmw_mss.xer4f] Error 1
    makefile:157: recipe for target 'main-build' failed
    gmake[1]: *** [main-build] Error 2
    makefile:152: recipe for target 'all' failed
    gmake: *** [all] Error 2

    **** Build Finished ****

    ===

    Errors for dss build

    ===

    Building file: "../dss_data_path.c"
    Invoking: C6000 Compiler
    "C:/ti/ti-cgt-c6000_8.1.3/bin/cl6x" -mv6740 --abi=eabi -O3 -ms0 --include_path="C:/Users/P/workspace_v8/mmw_dss_16xx" --include_path="C:/ti/mmwave_sdk_02_01_00_04/packages" --include_path="C:/ti/mathlib_c674x_3_1_2_1/packages" --include_path="C:/ti/dsplib_c64Px_3_4_0_0/packages/ti/dsplib/src/DSP_fft16x16/c64P" --include_path="C:/ti/dsplib_c64Px_3_4_0_0/packages/ti/dsplib/src/DSP_fft32x32/c64P" --include_path="C:/ti/ti-cgt-c6000_8.1.3/include" -g --gcc --define=SOC_XWR16XX --define=SUBSYS_DSS --define=DOWNLOAD_FROM_CCS --define=DebugP_ASSERT_ENABLED --define=MMWAVE_L3RAM_SIZE=0xC0000 --display_error_number --diag_wrap=off --diag_warning=225 --gen_func_subsections=on --obj_extension=.oe674 --preproc_with_compile --preproc_dependency="dss_data_path.d_raw" --cmd_file="configPkg/compiler.opt" "../dss_data_path.c"

    >> Compilation failure
    subdir_rules.mk:9: recipe for target 'dss_data_path.oe674' failed
    "../dss_data_path.c", line 793: error #20: identifier "MMWAVE_L3RAM_NUM_BANK" is undefined
    "../dss_data_path.c", line 793: error #20: identifier "MMWAVE_SHMEM_BANK_SIZE" is undefined
    2 errors detected in the compilation of "../dss_data_path.c".
    gmake[1]: *** [dss_data_path.oe674] Error 1
    Building file: "../gen_twiddle_fft16x16.c"

    ===