Part Number: IWR1642BOOST
Other Parts Discussed in Thread: MATHLIB, SYSBIOS
Tool/software: Code Composer Studio
Hello,
I am trying to compile the Demo code with a few alterations in the dss_data_path.c. Mainly, I am adding a new struct that stores x and y positions of objects within a certain area in front of the sensor. When I tried to compile mmw_dss project, it first produced this error:
'Building target: xwr16xx_mmw_dss.xe674'
'Invoking: C6000 Linker'
"C:/ti/ccsv7/tools/compiler/ti-cgt-c6000_8.1.3/bin/cl6x" -mv6740 --abi=eabi -O3 --opt_for_speed=4 -g --gcc --define=SOC_XWR16XX --define=SUBSYS_DSS --define=DOWNLOAD_FROM_CCS --define=DebugP_ASSERT_ENABLED --diag_wrap=off --diag_warning=225 --display_error_number --gen_func_subsections=on --obj_extension=.oe674 -z -m"xwr16xx_mmw_dss.map" --stack_size=0x800 --heap_size=0x800 -i"C:/ti/mmwave_sdk_01_00_00_05/packages/ti/control/mmwave/lib" -i"C:/ti/mmwave_sdk_01_00_00_05/packages/ti/control/mmwavelink/lib" -i"C:/ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/crc/lib" -i"C:/ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/mailbox/lib" -i"C:/ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/osal/lib" -i"C:/ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/soc/lib" -i"C:/ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/uart/lib" -i"C:/ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/edma/lib" -i"C:/ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/adcbuf/lib" -i"C:/ti/mmwave_sdk_01_00_00_05/packages/ti/alg/mmwavelib/lib" -i"C:/ti/dsplib_c64Px_3_4_0_0/packages/ti/dsplib/lib" -i"C:/ti/mathlib_c674x_3_1_2_1/packages/ti/mathlib/lib" -i"C:/ti/ccsv7/tools/compiler/ti-cgt-c6000_8.1.3/lib" -i"C:/ti/ccsv7/tools/compiler/ti-cgt-c6000_8.1.3/include" --reread_libs --disable_auto_rts --diag_warning=225 --diag_wrap=off --warn_sections --display_error_number --xml_link_info="xwr16xx_mmw_dss_linkInfo.xml" --ram_model --unused_section_elimination=on -o "xwr16xx_mmw_dss.xe674" "./dss_config_edma_util.oe674" "./dss_data_path.oe674" "./dss_main.oe674" "./gen_twiddle_fft16x16.oe674" "./gen_twiddle_fft32x32.oe674" "../c674x_linker.cmd" "../dss_mmw_linker.cmd" -l"configPkg/linker.cmd" -llibosal_xwr16xx.ae674 -llibsoc_xwr16xx.ae674 -llibcrc_xwr16xx.ae674 -llibuart_xwr16xx.ae674 -llibmailbox_xwr16xx.ae674 -llibmmwavelink_xwr16xx.ae674 -llibmmwave_xwr16xx.ae674 -lmathlib.ae674 -ldsplib.ae64P -llibedma_xwr16xx.ae674 -llibadcbuf_xwr16xx.ae674 -llibmmwavealg_xwr16xx.ae674 -lrts6740_elf.lib -llibc.a
<Linking>
"../dss_mmw_linker.cmd", line 44: warning #10068-D: no matching section
"../dss_mmw_linker.cmd", line 36: error #10099-D: program will not fit into available memory. run placement with alignment fails for section ".fastCode" size 0x3f20 . Available memory ranges:
L1PSRAM size: 0x4000 unused: 0x4000 max hole: 0x4000
>> Compilation failure
makefile:164: recipe for target 'xwr16xx_mmw_dss.xe674' failed
error #10010: errors encountered during linking; "xwr16xx_mmw_dss.xe674" not built
gmake[2]: *** [xwr16xx_mmw_dss.xe674] Error 1
makefile:160: recipe for target 'main-build' failed
gmake[1]: *** [main-build] Error 2
makefile:155: recipe for target 'all' failed
gmake: *** [all] Error 2
**** Build Finished ****
Then, I played around with compiler optimization, and the previous errors disappeared. However, these warnings appeared:
'Building target: xwr16xx_mmw_dss.xe674'
'Invoking: C6000 Linker'
"C:/ti/ccsv7/tools/compiler/ti-cgt-c6000_8.1.3/bin/cl6x" -mv6740 --abi=eabi -O3 -ms0 -g --gcc --define=SOC_XWR16XX --define=SUBSYS_DSS --define=DOWNLOAD_FROM_CCS --define=DebugP_ASSERT_ENABLED --diag_wrap=off --diag_warning=225 --display_error_number --gen_func_subsections=on --obj_extension=.oe674 -z -m"xwr16xx_mmw_dss.map" --stack_size=0x800 --heap_size=0x800 -i"C:/ti/mmwave_sdk_01_00_00_05/packages/ti/control/mmwave/lib" -i"C:/ti/mmwave_sdk_01_00_00_05/packages/ti/control/mmwavelink/lib" -i"C:/ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/crc/lib" -i"C:/ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/mailbox/lib" -i"C:/ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/osal/lib" -i"C:/ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/soc/lib" -i"C:/ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/uart/lib" -i"C:/ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/edma/lib" -i"C:/ti/mmwave_sdk_01_00_00_05/packages/ti/drivers/adcbuf/lib" -i"C:/ti/mmwave_sdk_01_00_00_05/packages/ti/alg/mmwavelib/lib" -i"C:/ti/dsplib_c64Px_3_4_0_0/packages/ti/dsplib/lib" -i"C:/ti/mathlib_c674x_3_1_2_1/packages/ti/mathlib/lib" -i"C:/ti/ccsv7/tools/compiler/ti-cgt-c6000_8.1.3/lib" -i"C:/ti/ccsv7/tools/compiler/ti-cgt-c6000_8.1.3/include" --reread_libs --disable_auto_rts --diag_warning=225 --diag_wrap=off --warn_sections --display_error_number --xml_link_info="xwr16xx_mmw_dss_linkInfo.xml" --ram_model --unused_section_elimination=on -o "xwr16xx_mmw_dss.xe674" "./dss_config_edma_util.oe674" "./dss_data_path.oe674" "./dss_main.oe674" "./gen_twiddle_fft16x16.oe674" "./gen_twiddle_fft32x32.oe674" "../c674x_linker.cmd" "../dss_mmw_linker.cmd" -l"configPkg/linker.cmd" -llibosal_xwr16xx.ae674 -llibsoc_xwr16xx.ae674 -llibcrc_xwr16xx.ae674 -llibuart_xwr16xx.ae674 -llibmailbox_xwr16xx.ae674 -llibmmwavelink_xwr16xx.ae674 -llibmmwave_xwr16xx.ae674 -lmathlib.ae674 -ldsplib.ae64P -llibedma_xwr16xx.ae674 -llibadcbuf_xwr16xx.ae674 -llibmmwavealg_xwr16xx.ae674 -lrts6740_elf.lib -llibc.a
<Linking>
warning #10370-D: Possible codesize or performance degradation. Section ".text:MmwDemo_interFrameProcessing:dss_data_path.oe674" has calls to rts routines, but rts is placed out of range from call site at 0xe01900, or in a different section. To optimize codesize, either 1) place rts closer to call site, or 2) place rts in same section, or 3) compile with --disable_push_pop.
warning #10370-D: Possible codesize or performance degradation. Section ".text:MmwDemo_interFrameProcessing:dss_data_path.oe674" has calls to rts routines, but rts is placed out of range from call site at 0xe024c4, or in a different section. To optimize codesize, either 1) place rts closer to call site, or 2) place rts in same section, or 3) compile with --disable_push_pop.
warning #10370-D: Possible codesize or performance degradation. Section ".text:MmwDemo_dssInitTask:dss_main.oe674" has calls to rts routines, but rts is placed out of range from call site at 0x20003f08, or in a different section. To optimize codesize, either 1) place rts closer to call site, or 2) place rts in same section, or 3) compile with --disable_push_pop.
warning #10370-D: Possible codesize or performance degradation. Section ".text:MmwDemo_dssInitTask:dss_main.oe674" has calls to rts routines, but rts is placed out of range from call site at 0x20003b80, or in a different section. To optimize codesize, either 1) place rts closer to call site, or 2) place rts in same section, or 3) compile with --disable_push_pop.
'Finished building target: xwr16xx_mmw_dss.xe674'
' '
C:/ti/mmwave_sdk_01_00_00_05/packages/scripts/ImageCreator/xwr16xx/out2rprc/out2rprc.exe xwr16xx_mmw_dss.xe674 xwr16xx_mmw_dss.bin
Parsing the input object file, xwr16xx_mmw_dss.xe674.
Appending zeros 8461856
Appending zeros 8469520
Appending zeros 8478616
Appending zeros 8479240
File conversion complete!
' '
**** Build Finished ****
The mmw_mss build finished with no errors, but with a suggestion to optimize the compiler. Which I did not do.
When I go into debug mode, I can load the .xe674 file onto the C674X debug probe, but when I load the .xer4f file onto the Cortex_R4 probe, the following error occurs:
[Cortex_R4_0] Exception occurred in ThreadType_Main.
Main handle: 0x0.
Main stack base: 0x8009e80.
Main stack size: 0x1000.
R0 = 0x00000000 R8 = 0x000116b4
R1 = 0x0001618b R9 = 0x00012ef4
R2 = 0x08000009 R10 = 0x000000d1
R3 = 0x08008e94 R11 = 0xffffffff
R4 = 0x0000865c R12 = 0x000142c9
R5 = 0x0800bd5a SP(R13) = 0x00000000
R6 = 0x00000001 LR(R14) = 0x000116b4
R7 = 0x08008ecc PC(R15) = 0x00012ef4
PSR = 0x400c019f
DFSR = 0x00000808 IFSR = 0x00000000
DFAR = 0xfffffff8 IFAR = 0x00000000
ti.sysbios.family.arm.exc.Exception: line 209: E_undefinedInstruction: pc = 0x00012ef4, lr = 0x000116b4.
xdc.runtime.Error.raise: terminating execution
I have a feeling that all this still has to do with the inability to to properly fit my code additions in the dss_data_path.c file onto the memory. From looking at different forum posts, the memory partition has to be somehow modified. But I am not sure where to start. What can you suggest?
Thank you.