OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5821|回复: 2

程序莫名死机,数组溢出?堆栈溢出?好像都不是

[复制链接]

2

主题

4

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2014-6-3
在线时间
1 小时
发表于 2014-6-3 23:37:32 | 显示全部楼层 |阅读模式
5金钱
软件模板:原子的寄存器工程模板
现象描述:定时器中断方式对4路AD采集,定时周期为2MS,分别存入对应的4个缓存数组;1个串口,中断方式接收数据并存入对应的缓存数组。所有数据都采用循环回路方式存储在缓存数组中,也就是当存满时从最低字节存储,覆盖以前的数据,所以不存在数组越界造成死机。在MAIN主程序中采用循环查询方式处理4个AD缓存和串口缓存里面的数据,并将AD数据和串口数据打包通过另外一个串口发送。在同时对AD采集和串口接收的时候,程序莫名死机;而单独AD采集数据或者串口接收数据,并打包数据通过另外一个串口发送,程序不会死机。
      另外,之前也是这个工程,所有程序和硬件都一样,只是之前只采集两路AD,也出现过类似的莫名死机,也是尝试过很多方法,最后修改程序,在声明某个数组的指定存储位置,问题得以解决,从没出现过死机。
尝试过的方法:在论坛中查过很多帖子,也尝试过类似的推荐,都无济于事,比如:1,把所有函数里面的数组全部放到外面,成为全局变量;2,修改启动文件,把堆栈改大。
     不知道原子兄做项目的时候有没有也碰到类似的问题,望赐教!谢谢!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

20

主题

158

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
334
金钱
334
注册时间
2012-8-21
在线时间
27 小时
发表于 2014-6-4 09:54:10 | 显示全部楼层
另外,之前也是这个工程,所有程序和硬件都一样,只是之前只采集两路AD,也出现过类似的莫名死机,也是尝试过很多方法,最后修改程序,在声明某个数组的指定存储位置,问题得以解决,从没出现过死机。
按你这个来说,应该是堆栈溢出,局域变量导致溢出的,
回复

使用道具 举报

3

主题

33

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
259
金钱
259
注册时间
2015-4-14
在线时间
62 小时
发表于 2015-9-6 11:11:45 | 显示全部楼层
楼主,,你讲的”在声明某个数组的指定存储位置“,是什么意思???
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-21 19:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表