起初是发现定义在M1数据区的数组被改动,而且无规律。后来干脆把M1数据区空出来,如图1 map文件显示M1 RAM未使用,图2 CCS中查看M1数据,发现部分区域被改动了(CCS实时刷新时红色字体表示变化了的内容)
请问这是怎么回事? 请TI技术帮忙确认一下。
图1 – map文件,M1 RAM保留未使用
图2 CCS实时刷新时显示M1区(0x400-0x800)数据被改动
Jun Zhang4:
上电后把M1区RAM清零,然后再观察,基本确认数据被改变的RAM范围:0x04D1 – 0x0540,长度0x70字
,
Jun Zhang4:
已经确认是sprintf函数在格式化浮点数时会导致这一片RAM数据发生变化。
如 sprintf(buf, “%.3f”, (float)adc_avg.st.Vbat);
但格式化整形数据时则不会。
单步仿真查到是在格式化浮点数时执行到如下图函数后RAM数据发生改变。
请帮忙处理,谢谢!
,
Jun Zhang4:
更进一步追踪发现在调用*fcvt()函数时,传递的形参value地址0x04EC地址(M1 RAM),这???????
,
Susan Yang:
很抱歉之前漏掉了您的帖子。
请问您使用的是launchpad? 能否私信/上传一下您的工程?我们来实际测试一下,谢谢
,
Jun Zhang4:
已发送私信附上测试代码,第一次发送私信不知道是否成功。如未收到请发个邮件到13266529715@163.com我邮件发给您,谢谢!
我测试用LAUNCH-XL板及自制板测试结果都一样。
,
Susan Yang:
已经收到了您的工程,我会在测试后给您回复