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.

280049 代码RAM运行断点无法正常停止,但程序是运行到的

280049C,程序用#pragma CODE_SECTION(xxx, ".TI.ramfunc"); 放至RAM运行,打断点不能停下,取消断点后有报错

C28xx_CPU1: Trouble Removing Breakpoint with the Action "Remain Halted" at 0x839b: (Error -1066 @ 0x839B) Unable to set/clear requested breakpoint. Verify that the breakpoint address is in valid memory. (Emulation package 8.2.0.00004)

不将程序放至RAM运行,则断点运行正常。

是什么问题? CCS9  compiler 18.12.2

  • 请问您是在哪里打的断点?能否给出相关的程序?

    另外请您先看一下

    e2e.ti.com/.../386163
  • 谢谢回复!

    又实验了一下,似乎是打断点的时间问题:

    DSP reset restart
    程序还没开始运行,我先在想要停下的位置打断点:
    1.如果断点在中断服务函数里面,则无法在断点处停下,取消断点出现上述错误;
    2.如果断点在main函数里面,断点功能正常;

    如果让程序运行一下,在任意位置打断点,断点功能正常。

    这是正常的现象么?

    还有个问题:
    interrupt void isr(void)
    {
    FUN1();
    FUN2();
    ...
    }

    void FUN1(void)
    {
    sub1();
    sub2();
    ...
    }

    #pragma CODE_SECTION(sub1(), ".TI.ramfunc");
    #pragma CODE_SECTION(sub2(), ".TI.ramfunc");
    #pragma CODE_SECTION(FUN1(), ".TI.ramfunc");
    要让程序在RAM运行,是需要子函数分别搬到RAM,还是FUN1搬一次就够了?还是要三个都做#pragma CODE_SECTION操作?