你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

函数进入Handle_fault error,怎么解决?

[复制链接]
聪明的小翔 提问时间:2021-5-17 11:30 / 未解决

收藏 评论6 发布时间:2021-5-17 11:30

举报

6个回答
STMCU-管管 回答时间:2021-5-17 12:40:51
常规的指针错误,数组下标溢出你应该都知道了,我遇到过你说的这种调试时定位到了错误的函数,是因为编译器你选择了优化,建议遇到这种问题时不要优化编译,那么调试时就是准确的定位,下图所示,但愿能解决你的问题。
1.png
埃斯提爱慕 回答时间:2021-5-17 19:52:13
一般都是内存越界了,检查程序中的数组下标、指针等操作,基本可以解决了
奇迹 回答时间:2021-5-18 09:17:53
把堆栈开大点,检查函数里面是否有大数组
zhangt0713 回答时间:2021-5-18 09:41:19
原因可能为
1、内存溢出或者访问越界。
2、堆栈溢出,程序指针指飞。
可尝试以下解决办法
解决方案1:
1、函数内部变量占用空间较大时,定义为全局变量或者静态变量,减少堆栈的占用。
2、多使用指针解决数据的复制,同时减少内存的占用。
3、修改堆栈大小
建议将中断函数修改,打印中断时的一些信息

moluxiyan 回答时间:2021-5-18 09:49:05
在Handle_fault函数中屏蔽while(1),然后添加int a;a++;在a++那加个断点,发生Handle_fault后,会停在断点处,然后在单步运行,就找到哪句代码导致异常了
江上远帆 回答时间:2021-5-25 20:37:49
之前遇到是因为栈溢出了,局部变量使用的数据空间为1000一个字节以上如: char table[1024] = {0},把类似的定义改成全局变量就可以了。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版