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.

CCS/IWR6843ISK-ODS: In CCS, Operation according to the setting of the optimization level.

Part Number: IWR6843ISK-ODS
Other Parts Discussed in Thread: MMWAVEICBOOST,

Tool/software: Code Composer Studio

I am reviewing incabinsensing\overhead_mount_occupancy.

However, inquire about any questions that CCS found while adding code.

The test environment is as follows.

In the case of optimization level off and 0, the sensor was not operated.

However, in cases 1 to 3, it worked normally.I would like to know why this is the result. For reference, I haven't modified any code. (Including Matlab m-file and CCS code)

Test device : MMWAVEICBOOST + IWR6843ISK-ODS

OS : Window 10

CCS, Version: 10.1.1.00004 

mss and dss : C:\ti\mmwave_automotive_toolbox_3_1_0\labs\incabinsensing\overhead_mount_occupancy\src. 2 Files

Matlab, 2020b, C:\ti\mmwave_automotive_toolbox_3_1_0\labs\incabinsensing\overhead_mount_occupancy\gui\overhead_vod_visualizer.m

Firmware : C:\ti\mmwave_sdk_03_04_00_03\packages\ti\utils\ccsdebug\xwr68xx_ccsdebug.bin

Uni flash : 6.0.0

1. Upload SDK bin file (xwr68xx_ccsdebug) to IWR6843ISK-ODS through Uni flash.

2. Change DSS-Properties-Build-C6000 Compiler-Optimization level off ~ 3 in CCS

3. Built -> Connect -> Upload -> Run CCS

4. Open the overhead_vod_visualizer.m and Run

5. Change the optimization level

6. Repeat 2~5

#Test Result

optimization level off, 0 : Not working

optimization level 1~3 : Working

Thank you.

  • Optimization level 0 can cause two failures:

    1) code size can become too large for either the defined memory section, or the available physical memory. This failure is caught at build time, as the linker is unable to fit the code or data items into their respective sections.

    2) code execution takes too much time to run, and runs beyond the next frame or chirp boundary.  This will cause missed events and the system will stop.  If you are adding new code, it is possible that there is an error that causes something to run longer than expected (or it is too slow for the available time).

    It is also possible to modify the CFAR CLI parameters such that the resulting inter-bin resolution is so high that heatmap generation time causes the frame boundary event to be missed.  Another possibility is that the #define setting the limit for the maximum number of detections is too high, causing CFAR and elevation estimation to run too long.

    With the code compiled with -O3 and using the default configuration, the frame for this demo is approximately divided thusly:

    (frame time 200ms)

    • chirping and range processing = ~159ms
    • inter-frame algorithms = ~5.5ms  (range-az heatmap, CFAR, elevation estimation)
    • DSP idle = ~35.5ms