今天调试发现奇怪问题,整数跑乱了。

2019-07-21 08:55发布

很简单的程序,int iStep控制程序步调,只有1和2、3三种状态,通过一整晚的运行没有问题,可是今早重新下载运行发现出现两次停运的情况,用ST-Link调试发现停止时iStep变成了一个不该有的值:0x080043C0。
昨天也出现这个问题。昨天iStep也出现乱值,但程序还在运行,只是由于iStep是不该有的值,没有按要求执行了,今天程序停留在main()开头了不运行了。
刚刚打完这几个字,发现精英版的LED等又不闪了......从串口助手看程序应该在运行,可能是iStep又跑没了。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
xiatianyun
1楼-- · 2019-07-21 13:14
通过ST-Link查看,iStep为0x080043C0,和刚刚一样。
HXYDJ
2楼-- · 2019-07-21 15:31
检查一下是不是整数的值超范围了,程序没控制住。
xiedonghui258
3楼-- · 2019-07-21 17:02
 精彩回答 2  元偷偷看……
bg4uvr
4楼-- · 2019-07-21 18:59
既然是int,怎么可能有这么大呢?
路上捡到一只猫
5楼-- · 2019-07-21 22:49
看芯片有没有SWO,有的话将iStep定义为全局变量,然后通过SWO的Data log功能,记录每次变量值被改写的值和PC指针,这样有可能知道是哪条代码导致的了。

一周热门 更多>