TMS320F280025C: 在RAM中运行的代码无法正常设置断点

Part Number: TMS320F280025C

我遇到了和https://e2echina.ti.com/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/182693/280049-ram中一样的问题。

复现方法:程序用#pragma CODE_SECTION(xxx, ".TI.ramfunc"); 放至RAM运行。

运行环境:CCS12.3,TMS320F280025C

问题表现如下:

1、在程序还没运行的时候,提前设置断点,而后启动程序,则提前设置的断点无效(程序正常运行,但未能在运行到断点位置时停下),若在程序运行过程中取消该断点,则会出现报错提示“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)”;,并且程序会在随机的其他位置停止运行;

2、如1中所述,程序在其他位置停止运行后,可以通过点击继续运行的按钮使其恢复运行,该现象有点类似提前设置的断点被放置到了其他地方;

3、如果我在启动程序后,再设置断点,则新设置的断点不会出现上述问题,程序正常执行且能进入断点;

4、我测试了将程序放到falsh中运行,则断点可以正常执行(可以提前设置断点并正常工作),因此判断是程序在RAM中运行导致的断点冲突;

5、该问题会导致每次程序调试都需要重新设置断点,非常影响效率,我看到上面链接的帖子里描述的问题和我遇到的完全一样,但是该问题似乎没有得到解答。