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.

Delfino not halting at breakpoints in internal RAM.

I'm working with the flash_programming_cpu01 project for the F2837xD controlCARD. Because some of the code updates internal flash it must execute from internal RAM.

Wheee!! multiple breakpoints!

Not so fast... :( 

I can set a breakpoint in main() which executes from flash. If I set a breakpoint in a function in a different file the breakpoint is bypassed. The function in the other file is in RAM as are some of the original example function:

#pragma CODE_SECTION(test_ECC, "ramfuncs");
void test_ECC(int type) {
...
}

There are variables set in the function so I do know that it executes and I can step into the function and step through it, but it would be much more convenient to start at main and just run to a breakpoint in the function.

I've searched this board for an answer and most of the other problems involve error messages when the breakpoint is set. I see none. The CCS breakpoint window shows nothing unusual when I set or remove this breakpoint. 

I am using the default optimization settings for this project (optimization off.)

I found a reference to  but it did not seem applicable to this.

Is there something else I have overlooked? 

At present this is a modification of an example project and includes no proprietary code so I could submit it if that would be helpful.

This is CCS 6.2.0.00050.

Thanks!

  • Hi,

    Please check if you are setting the breakpoint in code which is getting copied from Flash to RAM. If yes then you need to set the breakpoint after code is copied else breakpoint info will be overwritten.

    Regards,
    Vivek Singh
  • Yes, that seems to be the problem. I have the breakpoint set from a previous debug session and apparently it installs before the run time copies code to RAM. It's not clear exactly when that happens. There is a line that looks like it used to do that for a previous run time but is now commented out:

    // Copy time critical code and Flash setup code to RAM
    // This includes InitFlash(), Flash API functions and any functions that are
    // assigned to ramfuncs section.
    // The  RamfuncsLoadStart, RamfuncsLoadEnd, and RamfuncsRunStart
    // symbols are created by the linker. Refer to the device .cmd file.
    
       //memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);
    

    I guess this is now done before the runtime calls main().

    thanks,

    hank