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/AWR1443BOOST: Power Optimisation/Level Sense demo not allowing breakpoints to be used

Part Number: AWR1443BOOST
Other Parts Discussed in Thread: IWR1443, UNIFLASH

Tool/software: TI-RTOS

Hi,

I was trying the level sense demo and added break points to see the distance an object was away from the sensor. I flashed the sensors using the ccs_debug_mss so i could understand how the code works. The code give me a distance value at the breakpoint. When i do a CPU reset using CCS or restart the debug so i can gain a new range value from my sensor, instead of going to the breakpoint it gets stuck in a file called idle.c where the code is trapped in a while loop. Are there any ways around this problem

Thanks in advanced

/*The breakpoint in demo.c file located in level_sense_demo directory*/

  //Now compute the distances of the top N.
  for (idx = 0; idx < DEMO_NUM_RESULTS; idx ++)
  {
    results->distance[idx]  = (float)((max_bin[idx]) * DEMOCFG_RANGE_RES); //DEMOCFG_RANGE_RES
    results->power_sqr[idx] = max_power[idx];
  }

/*Idle.c file*/

#include <xdc/std.h>

#include <ti/sysbios/BIOS.h>

#include <ti/sysbios/hal/Core.h>
#include <ti/sysbios/hal/Hwi.h>

#include "package/internal/Idle.xdc.h"

/*
 *  ======== Idle_loop ========
 */
Void Idle_loop(UArg arg1, UArg arg2)
{
    while (TRUE) {
        Idle_run();
    }
}

/*
 *  ======== Idle_run ========
 */
Void Idle_run()
{
    Int i;

    if (BIOS_smpEnabled == TRUE) {
        UInt coreId = Core_getId();
        for (i = 0; i < Idle_funcList.length; i++) {
            if (Idle_coreList.elem[i] == coreId) {
                Idle_funcList.elem[i]();
            }
        }
    }
    else {
        for (i = 0; i < Idle_funcList.length; i++) {
            Idle_funcList.elem[i]();
        }
    }
}

  • Hi Saad,

    Just to confirm that you are following the correct procedure to debug the code in CCS, when you say you flashed the IWR1443 sensor with ccs_debug_mss.bin, I assume that you have also compiled the CCS out file for mss using either the projectspec or makefile provided with with the design and are following the following steps:

    1. Use UNIFLASH to Flash C:\ti\mmwave_sdk_01_00_00_05\packages\ti\utils\ccsdebug\xwr14xx_ccsdebug_mss.bin to prepare the EVM for CCS debug.

    2. Build the level_sense_Demo CCS out file (.xer4f) for the mss using the projectspec in tidcde2\level_sense_demo\iwr1443.

    3. Remove the SOP2 jumper, power cycle the board and connect the R4F target to CCS.

    4. Load the .xer4f file from step 2 on to the R4F core and start debugging.

    If the above process is correctly followed, I believe you are unable to put breakpoints because the default compiler settings in the projectspec are set for O3 optimization which would not allow you to put statement level breakpoints on code. You can reduce/remove the optimization by changing the compiler options in the projectspec as shown below:

    Please change the compilerBuildOptions to either remove the -O3 flag or reduce the optimization level to -O1 then rebuild the .xer4f file and retry the debug.

    Regards

    -Nitin