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.

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

Part Number: IWR1642BOOST
Other Parts Discussed in Thread: MMWAVE-SDK, IWR1642, IWR6843, SYSBIOS, MATHLIB

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

  • 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
  • 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.

  • 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.

  • 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
  • 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"

    ===

  • Krishna,

    Make the following changes to the dss and mss projectspecs:

    Common changes for both mmw_mss_16xx.projectspec and mmw_dss_16xx.projectspec

    1. Remove the existing -DMMWAVE_L3RAM_SIZE=0xC0000 option from compilerBuildOptions and --define=MMWAVE_L3RAM_SIZE=0xC0000 option from linkerBuildOption

    2. Add the following lines under compilerBuildOptions

    -DMMWAVE_L3RAM_NUM_BANK=6
    -DMMWAVE_SHMEM_TCMA_NUM_BANK=0
    -DMMWAVE_SHMEM_TCMB_NUM_BANK=0
    -DMMWAVE_SHMEM_BANK_SIZE=0x20000

    3. Add the following lines under linkerBuildOptions

    --define=MMWAVE_L3RAM_NUM_BANK=6
    --define=MMWAVE_SHMEM_TCMA_NUM_BANK=0
    --define=MMWAVE_SHMEM_TCMB_NUM_BANK=0
    --define=MMWAVE_SHMEM_BANK_SIZE=0x20000

    Changes only for mmw_mss_16xx.projectspec 

    1. Modify the value of the following property to ti.targets.arm.elf.R4Fi.e.

    <property name="target" value="ti.targets.arm.elf.R4Ft"/> (note from R4F to R4Ft i.e. thumb mode)

    Look at the projectspecs for lab0025_ods_point_cloud_demo_68xx in the latest Industrial Toolbox if you need help on how to add the above definitions to the respective sections.

    Thanks

    -Nitin

  • Now those errors are gone but post build fails in DSS and MSS

    C:/ti/mmwave_sdk_02_01_00_04/packages/scripts/ImageCreator/xwr16xx/out2rprc/out2rprc.exe xwr16xx_mmw_dss.xe674 xwr16xx_mmw_dss.bin
    makefile:198: recipe for target 'post-build' failed
    process_begin: CreateProcess(NULL, C:/ti/mmwave_sdk_02_01_00_04/packages/scripts/ImageCreator/xwr16xx/out2rprc/out2rprc.exe xwr16xx_mmw_dss.xe674 xwr16xx_mmw_dss.bin, ...) failed.

    MSS post build error
    Finished building target: "xwr16xx_mmw_mss.xer4f"

    C:/ti/mmwave_sdk_02_01_00_04/packages/scripts/ImageCreator/xwr16xx/out2rprc/out2rprc.exe xwr16xx_mmw_mss.xer4f xwr16xx_mmw_mss.bin
    makefile:190: recipe for target 'post-build' failed
    process_begin: CreateProcess(NULL, C:/ti/mmwave_sdk_02_01_00_04/packages/scripts/ImageCreator/xwr16xx/out2rprc/out2rprc.exe xwr16xx_mmw_mss.xer4f xwr16xx_mmw_mss.bin, ...) failed.

    gmake[3]: [post-build] Error 2 (ignored)
    process_begin: CreateProcess(NULL, C:/ti/mmwave_sdk_02_01_00_04/packages/scripts/ImageCreator/xwr16xx/multicore_image_generator/MulticoreImageGen.exe LE 37 0x00000006 xwr16xx_mmw.bin 0x35510000 xwr16xx_mmw_mss.bin 0xb5510000 C:/ti/mmwave_sdk_02_01_00_04/firmware/radarss/xwr16xx_radarss_rprc.bin 0xd5510000 C:/Users/P/workspace_v8/mmw_dss_16xx/Debug/xwr16xx_mmw_dss.bin, ...) failed.

    gmake[3]: [post-build] Error 2 (ignored)
    process_begin: CreateProcess(NULL, C:/ti/mmwave_sdk_02_01_00_04/packages/scripts/ImageCreator/xwr16xx/crc_multicore_image/crc_multicore_image.exe xwr16xx_mmw.bin xwr16xx_mmw.bin.tmp, ...) failed.

    gmake[3]: [post-build] Error 2 (ignored)
    C:/ti/mmwave_sdk_02_01_00_04/packages/scripts/ImageCreator/xwr16xx/multicore_image_generator/MulticoreImageGen.exe LE 37 0x00000006 xwr16xx_mmw.bin 0x35510000 xwr16xx_mmw_mss.bin 0xb5510000 C:/ti/mmwave_sdk_02_01_00_04/firmware/radarss/xwr16xx_radarss_rprc.bin 0xd5510000 C:/Users/P/workspace_v8/mmw_dss_16xx/Debug/xwr16xx_mmw_dss.bin
    makefile:190: recipe for target 'post-build' failed
    C:/ti/mmwave_sdk_02_01_00_04/packages/scripts/ImageCreator/xwr16xx/crc_multicore_image/crc_multicore_image.exe xwr16xx_mmw.bin xwr16xx_mmw.bin.tmp
    makefile:190: recipe for target 'post-build' failed
    gmake[3]: [post-build] Error 1 (ignored)
    C:/ti/mmwave_sdk_02_01_00_04/packages/scripts/ImageCreator/append_bin_crc/gen_bincrc32.exe xwr16xx_mmw.bin
    Error opening file xwr16xx_mmw.bin!!!
    makefile:190: recipe for target 'post-build' failed



    my workspace is in C:\users\p\workspace
  • Krishna,

    You should be able to resolve this by comparing the respective projectspecs (dss and mss) with the projectspecs for lab0025_ods_point_cloud_demo_68xx. As shown in the attached comparison snapshot, the path to out2rprc.exe has changed in SDK 3.1 and also in SDK 2.1. The image generation scripts have been moved to C:\ti\mmwave_sdk_02_01_00_04\packages\scripts\ImageCreator instead of packages\scripts\ImageCreator\xwr16xx in SDK 2.0. Use the postbuildsteps in lab0025 as reference and update the paths to the executables accordingly. This should be a good enough hint for you to figure out the rest on your own.

    Thanks 

    -Nitin

  • Cool, with this I am able to generate the bin file. Many thanks for your help.
  • Krishna,

    Good to hear that. Would you mind posting the working projectspec here for the benefits of other users?

    Regards
    -Nitin