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/IWR1843BOOST: CCS Debugging Interrupts Ignored

Part Number: IWR1843BOOST
Other Parts Discussed in Thread: UNIFLASH

Tool/software: Code Composer Studio

Hello everyone,

I recently attempted to handle interrupts for the ADCBuffer. It seems the interrupt callbacks only get called when I flash the compiled custom firmware directly via UniFlash. Using the CCS Debug mode (i.e. flashing the Debug Firmware), the interrupts will not be triggered.

This almost made me loose my mind when first implementing the callbacks, is there any way to make the interrupts happen during a debug session?

Best Regards
Jan

  • Hello

    Considering we already have  ccs debug mode demo working such difference is not expected.

    How are you checking for  the occurrence of call back.

    Regards

    Vaibhav

  • Currently I write a single byte over UART, alternatively I made an LED blink before.

    Best Regards
    Jan

  • Hi Jan,

    Debugging real-time applications can be tricky, in this case the interrupts are probably happening in real-time, not in emulation mode.  CCS should have no impact on when interrupts are triggered or handled, except when triggering is caused by code that is stopped.  It is also possible that the ADC Buffer interrupts are tied to the HWA (hardware accelerator).  In this case, the CPU never sees the trigger nor the handling by the HWA.

      I would suggest creating a global variable that is initialized to zero, and incrementing it within the ISR to verify whether it is called or not.

      -dave

  • Hello Dave,

    believe me, by now I'm well aware that it can be tricky :D .
    However, I already did what you suggested:
    I tried observing global variables, Hard- and Software Brakepoints within the ISR, toggling an LED, writing a single byte over a dedicated UART handle, etc.

    The simple truth remains:
    When I use a debugging session in CCS the interrupt callbacks are never triggered (the code is not halted, everything runs smoothly, with the obvious exception).
    When I directly flash the identical program everything works as intended.

    Best Regards
    Jan

  • CCS itself nor the debugger should have any impact on interrupt generation.  Perhaps there is a difference in the way the program is compiled or linked, or what component versions are pulled in.  On the compilation topic, it is usually preferable to build with -O0 instead of -O3 for debugging, because the debugger has difficultly stepping through highly optimized code.  And this in itself can cause problems if increased execution time extends past a deadline such as a chirp or frame boundary.

    Also, for ADC interrupts it is usually difficult to debug anywhere in the chirp processing because you can stop them from happening if you stop the device too early.  Normally for debugging, we set a breakpoint after all chirp processing has completed.  It is often helpful to set the number of frames in the frameCfg CLI command to 1 to keep the MSS from crashing when core to core communication stops.

  • Hello Dave,

    thanks for the hint regarding the optimization flag, unfortunately it did not resolve the problem.

    I am currently not doing any chirp processing at all, I only capture the raw samples of single frames using the chirp available interrupt. The DSS is not involved. Once again, this works perfectly fine when directly flashing my program and does not work at all when using CCS Debug due to the interrupts not being triggered.

    Best Regards
    Jan

  • Hi Jan,

    Have you checked that you are using the correct mmWave SDK and CCS debug image for your EVM?  You can check the Release Notes in the SDK's \doc file to verify support for your board.  The CCS debug image must match the DFP flashed in ROM. I have checked with collegues and this isn't a known issue, so it is likely there is a version mismatch somewhere.

     -dave