OpenEdv-开源电子网

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

请教hardfault该如何恢复呢?

[复制链接]

14

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2018-9-14
在线时间
157 小时
发表于 2020-1-17 17:57:10 | 显示全部楼层 |阅读模式
1金钱
比如内存访问错误等?
真心请教

最佳答案

查看完整内容[请看2#楼]

比如你代码没有没有判断空指针,然后访问了错误的地址,你的异常处理程序是没法帮你纠正的,毕竟不能揣测你的意图。 但可以帮你把这个线程给移除掉,然后你再做善后处理。 但以下几点可以纠正: 1. 如果程序正确,只是没有考虑对齐访问,可以根据地址来模拟,这样最后结果是正确的,但是性能很差。 2. 如果是把浮点指令在没有浮点的CPU上面跑,比如M4的FPU指令在M3上面跑,就会陷入末定义指令,此时使用软浮点来模拟。 这 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3718
金钱
3718
注册时间
2011-5-23
在线时间
2012 小时
发表于 2020-1-17 17:57:11 | 显示全部楼层
比如你代码没有没有判断空指针,然后访问了错误的地址,你的异常处理程序是没法帮你纠正的,毕竟不能揣测你的意图。

但可以帮你把这个线程给移除掉,然后你再做善后处理。

但以下几点可以纠正:
1. 如果程序正确,只是没有考虑对齐访问,可以根据地址来模拟,这样最后结果是正确的,但是性能很差。
2. 如果是把浮点指令在没有浮点的CPU上面跑,比如M4的FPU指令在M3上面跑,就会陷入末定义指令,此时使用软浮点来模拟。
这点有一定的实用性。
3. MMU缺页异常,这个在linux上面是基本特性了。分配内存时并不真正分配,有人访问时才真正分配。

RT-Thread RTOS 音频,WIFI,蓝牙
回复

使用道具 举报

14

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2018-9-14
在线时间
157 小时
 楼主| 发表于 2020-1-17 18:52:32 | 显示全部楼层
aozima 发表于 2020-1-17 18:35
比如你代码没有没有判断空指针,然后访问了错误的地址,你的异常处理程序是没法帮你纠正的,毕竟不能揣测你 ...

已经解决了...
谢谢
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-11 09:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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