注册 登录
查看: 186|回复: 1

疑似局部变量内存溢出问题

[复制链接]
回帖奖励 9 金币 回复本帖可获得 1 金币奖励! 每人限 2 次(中奖概率 50%)
发表于 2017-8-9 01:03:55 | 显示全部楼层 |阅读模式
各位,求教:

在执行程序时出现提示:****default_isr entered on vector 3*****HardFault Interrup。最后查到问题出现在这里:
在某一函数中定义了3个变量,分别是 unsigned char, unsigned char, unsigned int类型。如下:
unsigned char a=0;
unsigned char b=0;
unsigned int c=0;
发现执行最后一个变量声明后串口开始发送错误信息。

我进行了如下操作:
1、
将unsigned int c=0 改为 unsigned char c=0,错误消失;
将unsigend int c=0 声明为全局变量,错误消失;

2、
换一个变量d,也声明成unsigned int 类型,不会出现错误。
变量c与变量d,在函数中出现次数不同。c频繁出现。

请问问题原因可能是什么?
如果说局部变量很多,我可以接受是内存不足问题。但是只有这么几个变量,应该不会出现。但确实修改数据类型后问题消失。
还有就是和这个变量在函数中出现的频率有关么?为何声明同类型的另一个变量不会出现问题。

谢谢各位。本想早点睡觉结果查这个问题到现在,也算是找到问题所在了,希望能够搞清楚其中的原因。
IAR7.4,MK60FN。
回复

使用道具 举报

发表于 2017-8-9 09:32:36 | 显示全部楼层

回帖奖励 +1 金币

爆栈了,边界溢出?
回复 支持 反对

使用道具 举报

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

本版积分规则

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