[STM32] 很奇怪的问题,已经纠结了N天了

[复制链接]
2017|13
 楼主| chowei 发表于 2015-2-4 10:33 | 显示全部楼层 |阅读模式
请教一个问题:
我现在有一个全局变量(结构体里的变量)Dat.state用来记录一些状态量
和一个子函数的局部变量(数组)temp[50]
神奇的问题是
我temp与Dat.state没有任何一点关系,重来没有互相付值
但程序一运行temp[50]的初始化语句(for(i=0;i<50;i++)temp[i]=0;)
Dat.state立即清零
初始化语句换了N多种写法仍然是这样

我仿真的时候是只要运行到初始化他立即清零
而且退一万步说,我程序也必须运行到Dat.state付值相关的地方才清零啊,但他立即清零,这也解释不通啊?除非temp的地址与Dat.state相同了,但这怎么可能?
 楼主| chowei 发表于 2015-2-4 10:34 | 显示全部楼层
将局部变量定义成static也还是出问题
 楼主| chowei 发表于 2015-2-4 10:36 | 显示全部楼层
已经单步过了,
我把Dat.state加到观察窗口
然后只要运行到
temp[20]=0
Dat.state立即被清零
hbchf 发表于 2015-2-4 22:01 | 显示全部楼层
局部代码上来看看
ayb_ice 发表于 2015-2-5 15:43 | 显示全部楼层
关中断再试,
crystal1987 发表于 2015-2-5 16:23 | 显示全部楼层
有没有注意局部变量(数组)temp[50]的作用域,要不贴代码出来看看吧。
zchong 发表于 2015-2-6 13:40 | 显示全部楼层
大概是栈溢出了
killvx 发表于 2015-2-8 20:44 | 显示全部楼层
你给每个任务分配的空间是多大
cainiao_123 发表于 2015-2-12 15:21 | 显示全部楼层
可以把程序贴出来,让大家运行一下看看是不是一样的结果
想做大牛的小马 发表于 2015-2-13 20:20 | 显示全部楼层
zchong 发表于 2015-2-6 13:40
大概是栈溢出了

正解,看看栈的配置,你把栈配大一点再试试看呢
 楼主| chowei 发表于 2015-11-5 15:01 | 显示全部楼层
zchong 发表于 2015-2-6 13:40
大概是栈溢出了

你是对的,将子一个不相关的函数里的数组移出去就OK了。估计是这个原因。
 楼主| chowei 发表于 2015-11-5 15:09 | 显示全部楼层
明明分配完了,给了分又说没分配完,加一分又说不够
系统有问题吧,
阿南 发表于 2015-11-6 13:50 | 显示全部楼层
chowei 发表于 2015-11-5 15:09
明明分配完了,给了分又说没分配完,加一分又说不够
系统有问题吧,

:lol
yangwenguan 发表于 2015-11-7 07:45 | 显示全部楼层
还有这样的问题, :L
进debug, 单步跟踪,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

36

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部