4233|7

65

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教高手:一个关于全局变量随机变化的问题 [复制链接]


在一个源文件中定义了一个普通的全局变量,该变量在同一个PROJECT的多个源文件中被调用.
可以通过按键改变这个全局变量InputSelection的值,从而选择不同的输入源.

前期调试中切换正常.但是现在发现一个奇怪的问题,该变量的值总是莫名其妙随机的变化.用仿真器跟了一下,发现即使与变量毫无关系的操作,也会引起该全局变量的值的随机变化,很郁闷.

该全局变量没有声明成Static类型,所以可以在多个源文件中调用.

有没有人遇到过类似的问题?什么原因引起的?

最新回复

知道什么原因了,全局变量定义的太多了,内存不足(不是说不够,因为内存不够会报错),删除一些用不着或者可以不用的全局变量就OK啦!  详情 回复 发表于 2008-11-14 09:33
点赞 关注

回复
举报

73

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
可能是内存使用方面的问题, 比如数组越界,指针错误,或者异步事件引起的。

看看有循环、数组索引等相关地方。 供参考。
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
这个变量没有在中断中使用过,而且后来也试着在变量声明的时候加volatile修饰,结果是一样的,变量还是随机的变化
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

4
 
1 恢复到前期调试中的程序,现有的功能一点点的加。。。
2 查看汇编代码
3 换个编译器
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

5
 
1 试过,切换没问题的老版本,其他地方有问题,比如图象只有屏幕的1/4抖动黑白等,这些一步一步加上完后,没有问题了,暂时也可以切换,不过过一会同样的程序发现就切换不了了,古怪啊!反复试了多次了
2 看过,这个全局变量处理的时候用的R24寄存器,存在0x0919这个地址,编译器没有优化选项
3 没试过
 
 
 

回复

78

帖子

0

TA的资源

五彩晶圆(初级)

6
 
把这个变量改成有返回值的函数试试,应该没有问题
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

7
 
哈哈哈哈

又是全局变量的祸害...

做这种事的时候,我替LZ先郁闷三分钟

想当年我刚刚出来的时候,在公司的老库里,老工程师(可能是从汇编那代过来)全部都是全局变量哈

怎么死的都不知道

具体只能一个一个跟踪了

亲爱的LZ,以后你要吸取教训了,全局变量要么不用,要么做好注释,文档要全

你现在,最好,先把程序里哪里会修改到这个变量

先找出来,运气最好的是:你能看出变化的规律,然后找到哪儿改动了这个变量

如果,你找不到,只能一个一个试

以后,读写的时候要注意了,一定要拿到权限再干,不然,死得很惨,是先把人给搞死
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(中级)

8
 
知道什么原因了,全局变量定义的太多了,内存不足(不是说不够,因为内存不够会报错),删除一些用不着或者可以不用的全局变量就OK啦!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表