最近在搞一个程序(程序中在RAM中调试),用到了CLA,遇到了个问题,我在main.c文件中定义如下:
#pragma DATA_SECTION(God, "Cla1ToCpuMsgRAM");
volatile float God;
在TSAK8中完成初始化,如下所示:
MMOVF32 MR2, #5.0L
MMOV32 @_God,MR2
在TASK2中改变God的值,如下所示:
MMOVF32 MR2, #5.52L
MMOV32 @_God,MR2
通过WATCHWIDOW中刷新,发现正常,God显示正常,在TASK2中将God的值变为5.0时,再次下载程序,发现God的值未改变,只有在DEBUGZ中RESET CPU后再次下载程序,发现值显示正常了,请问这是什么原因?
问题2:我在main.c文件中也定义了CNT,如下所示:
#pragma DATA_SECTION(CNT, "Cla1ToCpuMsgRAM");
volatile float CNT;
在TSAK8中完成初始化,如下所示:
MMOVF32 MR3, #0.0L
MMOV32 @_CNT,MR3
在TASK2中对CNT完成加1的功能:
MADDF32 MR0, MR0, #1.0
MMOV32 @_CNT, MR0
在WATCHWIDOW中观察CNT值显示正常,现在将
MADDF32 MR0, MR0, #1.0
MMOV32 @_CNT, MR0这两句删去,发现CNT的值还在变化,只有RESET CPU后才归为初始化0这个值,请问这是什么原因,请教于各位高手了,小弟在此先行谢过。