定义大型数组出错了,如何解决

[复制链接]
1550|7
 楼主| dongbaohui 发表于 2015-12-26 17:32 | 显示全部楼层 |阅读模式
程序中定义两个2048的数组,只要程序一运行,就出现问题了,跳进去HardFaultException
enginezhong 发表于 2015-12-27 11:44 | 显示全部楼层
不要在函数里面定义超过几十个字节的数组,不然很容易出问题。
电子玩霸 发表于 2015-12-28 08:48 | 显示全部楼层
定义在程序中,临时的堆栈不够用的,你这个数组太大了
原味_郭 发表于 2015-12-29 08:17 | 显示全部楼层
定义全局变量,或者用内存管理。
Classover 发表于 2015-12-29 21:23 | 显示全部楼层
定义成局部变量必死。
yesherecn 发表于 2015-12-30 16:38 | 显示全部楼层
可以采用双缓冲,2个缓存,A,B,各512字节。 当A收满512字节的时候,接收数据存放到B,同时,将A的数据写入SD卡。  
等待B满的时候,接收数据存放到A,同时将B的数据写入SD卡。 依次循环。
tomyoct 发表于 2015-12-31 16:54 | 显示全部楼层
启动文件里面对栈的大小有固定的值。函数里面的数组是在调用该函数的时候,才给你分配空间。数组过大,栈溢出了,有可能覆盖了其他全局变量的值。如果使用很大的数组,可以定义成一个全局变量。如果使用的有os。就使用内存管理。
MTCN2013 发表于 2015-12-31 22:15 | 显示全部楼层
可以试试修改堆栈试试,把堆栈值修改变大。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

172

帖子

0

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