单片机常见Fault故障及应对办法
来源:嵌入式专栏 发布时间:2024-05-11
分享至微信
![](/_nuxt/img/wechaticon.317e48d.png)
![](https://img.icspec.com/article/a981c8640f3e11ef884400163e1eb85a.jpeg)
Fault故障种类
HardFault:硬故障 MemManage:存储器管理故障 BusFault:总线故障 UsageFault:用法故障
![](https://img.icspec.com/article/a982608a0f3e11ef9f3400163e1eb85a.png)
void HardFault_Handler(void)
{
/* Go to infinite loop when Hard Fault exception occurs */
while (1)
{
}
}
void MemManage_Handler(void)
{
/* Go to infinite loop when Memory Manage exception occurs */
while (1)
{
}
}
void BusFault_Handler(void)
{
/* Go to infinite loop when Bus Fault exception occurs */
while (1)
{
}
}
void UsageFault_Handler(void)
{
/* Go to infinite loop when Usage Fault exception occurs */
while (1)
{
}
}
Fault故障描述
![](https://img.icspec.com/article/a982608a0f3e11ef9f3400163e1eb85a.png)
![](https://img.icspec.com/article/a9b6174a0f3e11ef9f3400163e1eb85a.png)
访问了 MPU 设置区域覆盖范围之外的地址 往只读 region 写数据 用户级下访问了只允许在特权级下访问的地址
![](https://img.icspec.com/article/a9d77e080f3e11ef9f3400163e1eb85a.png)
取指,通常被称作“预取流产” 数据读/写,通常被称作“数据流产”
中断处理起始阶段的堆栈 PUSH 动作。称为“入栈错误” 中断处理收尾阶段的堆栈 POP 动作。称为“出栈错误”
![](https://img.icspec.com/article/a9d12cd80f3e11ef884400163e1eb85a.png)
![](https://img.icspec.com/article/aa3124b20f3e11ef9f3400163e1eb85a.png)
![](https://img.icspec.com/article/aa4c9cec0f3e11ef884400163e1eb85a.png)
应对故障办法
void HardFault_Handler(void)
{
//读取状态寄存器,打印状态寄存器,判断什么原因引起故障
printf("状态x信息");
while (1)
{
}
}
![](https://img.icspec.com/article/aa3cb2e60f3e11ef884400163e1eb85a.jpeg)
![](https://img.icspec.com/article/aa87db540f3e11ef9f3400163e1eb85a.png)
[ 新闻来源:嵌入式专栏,更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj]
存入云盘 收藏
举报
全部评论
暂无评论哦,快来评论一下吧!
![](https://img.icspec.com/common/images/artbrand.png)
![](https://img.icspec.com/xxt/avatar/9e8c32953d3a4ac887530700d0df3e22.png)
嵌入式专栏
作者黄工【strongerHuang】,专注分享嵌入式软件、硬件、工具等相关内容,通过专栏形式精选并整理更多嵌入式相关教程。
查看更多
相关文章
单片机常用温度控制算法
6 小时前
基于51单片机汇编语言
2024-06-07
单片机开发用RTOS有哪些优势?
2024-05-21
单片机中断这样配置,是不更简单?
一周前
单片机Hex文件校验生成和验证的方法
2024-05-11
热门搜索