Part Number:TMS320F280049
将此段代码从28335移植到280049,在如下asm代码行无法设置断点,但在28335里可以设置断点,请问是什么原因?
#pragma CODE_SECTION(MainSwitch, "Flash28Funcs");
void MainSwitch(void)
{
// 完成c运行环境初始化
asm(" MOV @SP,#0x0000");
asm(" SPM 0");
asm(" SETC OBJMODE");
asm(" CLRC AMODE");
asm(" SETC M0M1MAP");
asm(" CLRC PAGE0");
asm(" SETFLG RNDF32=1");
asm(" MOVW DP,#0x0000");
asm(" CLRC OVM");
asm(" ASP");
if(*((Uint16 *) 0x097FFF) == 0x55FF)
{
asm(" LB 097FFCH");
}
else
{
Drv_SystemInit(); Drv_RamCheck();
}
Green Deng:
看下程序里面的断点数是不是已经有2个了?CCS只能设置不超过2个断点。
,
user4678620:
程序里以前没有断点,在任意asm行双击设置断点,断点会自动跳到if语句行,请问汇编语句行设置断点与C语言代码行有差异吗?
,
Green Deng:
看了一下,汇编语言打断点也没有什么特别差异。有没有可能程序根本没执行到断点处?可以试一下单步运行,看是否有这个问题。
,
user4678620:
这段代码在MAIN函数入口地址之前,要单步运行必须在CCS点击reset复位后,再点击单步运行。但是280049点击reset复位后,程序将停留在0x3FB02B处而无法继续点击单步运行,这是之前遇到的一个问题一直没有解决,陷入了死循环了。