开发板TMDSEVM6670LE上运行VLFFT例子
我把msg->mode从枚举类型改为UInt32
在程序的600行左右,slave核第一次接收到core0发来的msg,且msg->mode=0
但是图中593行的mode=msg->mode,加不上断点,而且运行的时候直接跳过
if(mode ==0)也加不上断点,被直接跳过,不进行判断
为什么会出现这种情况?
Ps:
在原代码不变时,即mode是枚举类型。
在expression窗口能看到==左右两边是一样的,但是程序判断为不等,三个if都不能成立
if(mode == VLFFT_DO_NOTHING)
if(mode == VLFFT_PROCESS_1stITER)
if(mode == VLFFT_PROCESS_2ndITER)
通过在if内加printf,如下:
if()
{….
printf();
}
在4个核直接运行(不设断点)时,printf有输出,程序正常。但是分别调试时,没有printf,这是为什么?
King Wang1:
是不是开了优化,通常开了优化有些语句就打不上断点。
Muhua Chen:
回复 King Wang1:
优化已经Disabled
还是存在赋值赋不上,而且核1可以正确赋值,核2.核3 赋值结果不对,不知是什么原因,核1 2 3 的代码是一模一样的
jie lei:
调试选项用full symbolic debug