打印
[STM32F4]

RGB屏触摸几下之后进入HardFault_Handler

[复制链接]
839|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
大神们有没有什么解决思路呀,更改堆栈大小好像也没用,触屏还是点几下就死在HardFault_Handler了
沙发
msq199058|  楼主 | 2017-8-11 16:05 | 只看该作者
仿真结果

1.jpg (185.25 KB )

1.jpg

使用特权

评论回复
板凳
mmuuss586| | 2017-8-11 17:10 | 只看该作者
这就不好查,程序,硬件都不好说;

使用特权

评论回复
地板
_L_D_H_| | 2017-8-11 18:37 | 只看该作者

这种问题一般是内存(数组)溢出越界等引起的,一般不会是硬件问题!

使用特权

评论回复
5
airwill| | 2017-8-12 08:29 | 只看该作者
我记得看过一个解决这个问题的方法.
大致是, 通过寄存器来先识别什么类型的故障, 通常 Hard 故障由其他几个故障上访而成. 识别到类型后, 再根据堆栈中故障地址来分析故障原因.
看了比较复杂.   最常见的是非法地址访问. 而野指针往往最常见一些.

使用特权

评论回复
6
msq199058|  楼主 | 2017-8-12 09:21 | 只看该作者
mmuuss586 发表于 2017-8-11 17:10
这就不好查,程序,硬件都不好说;

额..........

使用特权

评论回复
7
msq199058|  楼主 | 2017-8-12 09:22 | 只看该作者
_L_D_H_ 发表于 2017-8-11 18:37
这种问题一般是内存(数组)溢出越界等引起的,一般不会是硬件问题!

我也是这么想的,哎。。慢慢查吧

使用特权

评论回复
8
msq199058|  楼主 | 2017-8-12 09:22 | 只看该作者
airwill 发表于 2017-8-12 08:29
我记得看过一个解决这个问题的方法.
大致是, 通过寄存器来先识别什么类型的故障, 通常 Hard 故障由其他几个 ...

恩,我再仔细看看工程

使用特权

评论回复
9
_L_D_H_| | 2017-8-21 17:56 | 只看该作者
msq199058 发表于 2017-8-12 09:22
我也是这么想的,哎。。慢慢查吧

如果方便可以把代码发出来给你看看!

使用特权

评论回复
10
FAQ| | 2017-8-21 20:56 | 只看该作者
八成是数组越界,访问到非法地址了。

使用特权

评论回复
11
msq199058|  楼主 | 2017-8-25 16:21 | 只看该作者
FAQ 发表于 2017-8-21 20:56
八成是数组越界,访问到非法地址了。

已解决了,自己犯了个很低级的错误,由于有很多层界面的切换,当时忘了都用的是隐藏窗口的函数,所以创建窗口一多的话内存溢出了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

68

帖子

0

粉丝