<nobr id="ptphf"><del id="ptphf"><delect id="ptphf"></delect></del></nobr>
    <listing id="ptphf"></listing>

    <p id="ptphf"></p>
    <b id="ptphf"><del id="ptphf"></del></b>

      <pre id="ptphf"><menuitem id="ptphf"><meter id="ptphf"></meter></menuitem></pre>
      <del id="ptphf"><cite id="ptphf"></cite></del>
      <form id="ptphf"></form>
      <p id="ptphf"><var id="ptphf"><progress id="ptphf"></progress></var></p>

      <form id="ptphf"></form>
      <noframes id="ptphf"><noframes id="ptphf"><ins id="ptphf"><mark id="ptphf"></mark></ins><form id="ptphf"><b id="ptphf"><dfn id="ptphf"></dfn></b></form>
        <ruby id="ptphf"><menuitem id="ptphf"></menuitem></ruby>
        侵权投诉

        针对Cortex-M3谈谈单片机Fault故障

        strongerHuang ? 2021-10-29 10:00 ? 次阅读

        我们平时的项目,可能会遇到死机的情况,通过在线调试,或者打印消息,可能会发现,怎么进入了 HardFault_Handler 中断呢?

        这种“硬故障”是我们常见的一种故障,导致硬故障的原因也有很多。本文针对 Cortex-M3 说说 Fault 故障相关的内容。

        1

        Fault故障种类

        Fault故障的种类有很多,拿本文Cortex-M3来说,主要有:

        HardFault:硬故障

        MemManage:存储器管理故障

        BusFault:总线故障

        UsageFault:用法故障

        4a8fa124-383f-11ec-82a8-dac502259ad0.png

        比如,在stm32f10x_it.c源代码中,有这样的中断入口:

        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) { }}

        2

        Fault故障描述

        每一种Fault故障的产生,都肯定是有一定原因的,如果你代码产生了Fault故障中断,说明代码某些地方引起了Fault故障。

        1.HardFault:硬故障

        通过截图的描述,你会发现硬故障是一种“不可编程”的故障,因为存储器管理故障、总线故障、用法故障如果不能得到执行,就为上访为硬故障。

        4a8fa124-383f-11ec-82a8-dac502259ad0.png

        比如:比如在取向量时产生的总线故障也按会硬故障进行处理。所以,你会发现出现故障,很多时候都是硬故障。

        硬故障状态寄存器描述:

        4b3a6546-383f-11ec-82a8-dac502259ad0.png

        通过状态寄存器,你会发现产生硬故障的原因有以上几种。

        2.MemManage:存储器管理故障存储器管理故障通常与MPU(内存保护单元)有关,之前给大家分享过MPU相关的文章《什么是Cortex-M内核的MPU?》。

        通常就是我们说的“内存越界”就会导致存储器管理故障,细说引起该故障的诱因有:

        访问了 MPU 设置区域覆盖范围之外的地址

        往只读 region 写数据

        用户级下访问了只允许在特权级下访问的地址

        存储器管理故障状态寄存器:

        4b803576-383f-11ec-82a8-dac502259ad0.png

        通过状态寄存器,你会发现引起该故障的一些原因。

        3.BusFault:总线故障总线故障,顾名思义就是对“总线”操作出现问题,导致的故障。

        比如:当 AHB 接口上正在传送数据时,如果回复了一个错误信号(error response),则会产生总线故障。

        产生总线故障的场合:

        取指,通常被称作“预取流产”

        数据读/写,通常被称作“数据流产”

        触发总线故障的动作:

        中断处理起始阶段的堆栈 PUSH 动作。称为“入栈错误”

        中断处理收尾阶段的堆栈 POP 动作。称为“出栈错误”

        4bbd91dc-383f-11ec-82a8-dac502259ad0.png

        同样,通过总线故障状态寄存器了解产生的原因:

        4c069850-383f-11ec-82a8-dac502259ad0.png

        4.UsageFault:用法故障用法故障相对不常见,出现该故障通常是进行了“未对齐访问操作”,其他导致该故障问题很少见。

        比如:执行了未定义的指令、除数为0(编译器都会避免)、无效的中断返回等这些情况比较少见。

        用法故障状态寄存器:

        4c5be620-383f-11ec-82a8-dac502259ad0.png

        3

        应对故障

        不知道大家平时有没有对这些进行有效避免?

        这里简单说几点应对故障的措施:

        1.通过故障状态寄存器的值来判定程序错误

        在故障中断函数中,读取故障的状态(上面描述了状态寄存器),比如硬故障:

        void HardFault_Handler(void){ //读取状态寄存器,打印状态寄存器,判断什么原因引起故障 printf(“状态x信息”); while (1) { }}

        如果不想系统处于死机状态,可以在中断里面做软复位。

        2.提前对代码进行分析、预判

        比如:通过代码静态分析工具,对代码进行分析、查找bug。

        责任编辑:haq

        原文标题:单片机Fault故障常见应对办法

        文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

        收藏 人收藏
        分享:

        评论

        相关推荐

        基于单片机小功率数控直流稳压电源仿真设计

        1.设计要求:(1) 输入电压:AC220V±10%,频率50Hz;(2) 输出电压/电流:DC 0....
        发表于 11-07 14:21 ? 0次 阅读
        基于单片机小功率数控直流稳压电源仿真设计

        电子设计大赛-放大器类题目分析

        文末下载完整资料实用低频功率放大器[2](第二届,1995年)(1)设计任务??设计并制作具有弱信号....
        发表于 11-07 11:06 ? 5次 阅读
        电子设计大赛-放大器类题目分析

        基于STM32的高精度温度测控系统-PCB设计

        一款24位高精度AD温度采集电路,基于STM32,运行UCOS,LabView上位机通信,采集PT1....
        发表于 11-07 10:51 ? 4次 阅读
        基于STM32的高精度温度测控系统-PCB设计

        数电课设—四位数字电子钟设计

        四位数字电子钟设计目录四位数字电子钟设计一.实验名称:四位数字电子钟设计二.设计目的三.设计内容四.....
        发表于 11-07 10:06 ? 4次 阅读
        数电课设—四位数字电子钟设计

        【星空派GD32F303开发板试用体验】+移植MultiButton,按键+串口+LED

        板卡初次试用,先体验一下按键,串口,以及LED,这里移植了MultiButton,即按下按键2,LED1循环闪烁,并答应,依次按键...
        发表于 11-06 22:05 ? 0次 阅读
        【星空派GD32F303开发板试用体验】+移植MultiButton,按键+串口+LED

        【星空派GD32F303开发板试用体验】+板卡概览

        星空派(GD)开发板是由旗点科技推出的一款GD32开发板,板载GD32F303ZET6芯片,可直接替代STM32F103和GD32F1...
        发表于 11-06 21:05 ? 0次 阅读
        【星空派GD32F303开发板试用体验】+板卡概览

        水中机器人电控方案设计

        第七届工训赛水中机器人电控方案设计
        发表于 11-06 20:51 ? 17次 阅读
        水中机器人电控方案设计

        触摸芯片一般设计问题归纳

        ESSE触控芯片在方案应用中遇到的一些问题,及规避方法,注意点直流电机电路应用造成触控失灵问题描述:....
        发表于 11-06 20:36 ? 4次 阅读
        触摸芯片一般设计问题归纳

        电子设计大赛-信号源类题目分析

        文末下载完整资料实用信号源的设计和制作[2] (第2届,1995年)(1)设计任务在给定±15V电源....
        发表于 11-06 20:06 ? 8次 阅读
        电子设计大赛-信号源类题目分析

        DAC8760+STM32F407单电源电路硬件测试

        DAC8760+STM32F407单电源电路硬件测试特性16位DAC+10V至+36V单电源,或者1....
        发表于 11-06 20:06 ? 7次 阅读
        DAC8760+STM32F407单电源电路硬件测试

        电源逆变器的CMOS集成

        本文为美国加利福尼亚大学(作者:Eric Francis Mannarino)的硕士论文,共49页。....
        发表于 11-06 20:06 ? 8次 阅读
        电源逆变器的CMOS集成

        电子设计大赛-控制类题目分析

        文末下载完整资料第三届(1997年)C题 水温控制系统[3](1)设计任务??设计并制作一个水温自动....
        发表于 11-06 18:21 ? 5次 阅读
        电子设计大赛-控制类题目分析

        《中科蓝讯AB32VG1开发实践指南1.0.1》PDF带书签

        《中科蓝讯AB32VG1开发实践指南1.0.1》 添加了书签,方便大家查看。 ...
        发表于 11-06 17:47 ? 102次 阅读

        STM32的电路设计解释

        STM32硬件电路图问题STM32的VBAT引脚STM32的VBAT引脚1、VBAT:当使用电池或其....
        发表于 11-06 17:36 ? 10次 阅读
        STM32的电路设计解释

        STM32MP157系列教程连载-硬件设计篇2:STM32MP1微处理器之电源篇

        STM32MP1系列教程连载-硬件设计篇2:STM32MP1微处理器之电源篇一、官网资料下载官网是获....
        发表于 11-06 16:51 ? 8次 阅读
        STM32MP157系列教程连载-硬件设计篇2:STM32MP1微处理器之电源篇

        数字信号控制器的完整功能安全生态系统

        为给汽车运行和最终用户提供可靠保障,安全一直是汽车应用中的头等大事。Microchip Techno....
        的头像 Excelpoint世健 发表于 11-06 16:28 ? 332次 阅读

        备战全国电子设计大赛-电源电路TPS5450

        备战全国大学生电子设计竞赛,此电源模块适合竞赛使用,方便,适用,可提前准备,有备无患。
        发表于 11-06 16:21 ? 7次 阅读
        备战全国电子设计大赛-电源电路TPS5450

        飞睿科技雷达模组存在感应雷达模块的多普勒效应原理

        微波雷达,电磁波波长很短,在1mm~1m范围,所以一般称为微波,也可以称为“超高频电磁波”。微波雷达....
        发表于 11-06 16:02 ? 98次 阅读

        2020年电子设计竞赛B题 ——单相在线式不间断电源 回顾

        单相在线式不间断电源系统一、题目及其思路二、模块介绍Buck电路Boost电路INA282电路逆变电....
        发表于 11-06 15:51 ? 8次 阅读
        2020年电子设计竞赛B题 ——单相在线式不间断电源 回顾

        2021全国大学生电子设计竞赛--电源--三相逆变(硬件)

        废话不多说,直接上电路!三相逆变系统的框架如下::那么,降压电路不用多说,网上多得是1、下面说一下逆....
        发表于 11-06 15:51 ? 19次 阅读
        2021全国大学生电子设计竞赛--电源--三相逆变(硬件)

        2020年大学生电子设计竞赛,B题,单相在线式不间断电源,详细技术方案!

        点击上方“大鱼机器人”,选择“置顶/星标公众号”福利干货,第一时间送达!概述2020年全国大学生电子....
        发表于 11-06 15:36 ? 13次 阅读
        2020年大学生电子设计竞赛,B题,单相在线式不间断电源,详细技术方案!

        锂电池充电IC-TP4056电路设计详解

        首先,先介绍下TP4056。TP4056是一款完整的单节锂离子电池采用恒定电流/恒定电压线性充电器。....
        发表于 11-06 15:21 ? 16次 阅读
        锂电池充电IC-TP4056电路设计详解

        嵌入式单片机之STM32F103C8T6最小系统板电路设计参考

        。STM32F103C8T6最小系统板电路设计一。电源部分设计了一个XH插座,以便使用3.7V锂电池....
        发表于 11-06 14:36 ? 10次 阅读
        嵌入式单片机之STM32F103C8T6最小系统板电路设计参考

        硬件电路设计之如何设计一个STM32最小系统?

        ??STM32最小系统主要由STM32F103RCT6微处理器、时钟晶振电路、按键复位电路、电源稳压....
        发表于 11-06 14:21 ? 10次 阅读
        硬件电路设计之如何设计一个STM32最小系统?

        基于TLC5615的多路可调数控直流稳压电源,51单片机,含Proteus仿真和C代码等

        设计要求5V单电源工作;电压输出范围为基准输入电压2倍,本设计调节范围为:0V~3.9V;电压调整精....
        发表于 11-06 14:06 ? 6次 阅读
        基于TLC5615的多路可调数控直流稳压电源,51单片机,含Proteus仿真和C代码等

        STM32电源方案

        截自STM32F407X数据手册5.1.6 Power supply scheme 图19
        发表于 11-06 13:36 ? 2次 阅读
        STM32电源方案

        电子设计大赛-电源类题目分析

        文末下载完整资料电源类题目分析??电源类题目有简易数控直流电源(第一届,1994年)和直流稳压电源(....
        发表于 11-06 13:21 ? 6次 阅读
        电子设计大赛-电源类题目分析

        2020年电子设计竞赛 B题-单相在线式不间断电源 分析与总结

        目录一、系统总体设计二、硬件电路与结构三、程序流程与设计四、总结与其他一、系统总体设计1、题目分析 ....
        发表于 11-06 13:21 ? 2次 阅读
        2020年电子设计竞赛 B题-单相在线式不间断电源 分析与总结

        615【毕设课设】基于单片机的小功率数控直流稳压电源设计

        【资源下载】下载地址如下:https://docs.qq.com/doc/DTlRSd01BZXNp....
        发表于 11-06 13:06 ? 3次 阅读
        615【毕设课设】基于单片机的小功率数控直流稳压电源设计

        智能小车之电源板电路设计分析

        一。输入接口XH插座用了接锂电池。注意正负极。DC5.5-2.1mm接口,一般用12V,1A电源适配....
        发表于 11-06 12:51 ? 8次 阅读
        智能小车之电源板电路设计分析

        Part14--电源模块设计集合

        文章目录1 5V电源模块2 3.3V电源模块3 5v&3A电源模块4 1.9V电源模块5 5V电源模....
        发表于 11-06 12:51 ? 6次 阅读
        Part14--电源模块设计集合

        数控直流稳压电源设计方案

        本设计采用stc15微控制器为核心,线性稳压直流电源电路,实现数控电压输出,LCD12864为显示板....
        发表于 11-06 12:21 ? 3次 阅读
        数控直流稳压电源设计方案

        NXP ZigBee 3.0 网关 硬件设计指南,主要包含供电,主控,ZigBee 部分

        前面的文章中,我们通过实际案例介绍了 ZigBee 网关的架构,相信大家对于网关该如何挑选合适的器件....
        发表于 11-06 12:06 ? 7次 阅读
        NXP ZigBee 3.0 网关 硬件设计指南,主要包含供电,主控,ZigBee 部分

        多种电压转换的电路设计方案

        关注、星标公众号,不错过精彩内容来源:网络标准三端线性稳压器的压差通常是 2.0-3.0V。要把 5....
        发表于 11-06 11:51 ? 6次 阅读
        多种电压转换的电路设计方案

        单片机毕业设计之 -- 基于stm32的示波器设计

        文章目录1 简介2 主要器件3 实现效果4 设计原理5 部分实现代码6 最后1 简介Hi,大家好,这....
        发表于 11-06 11:36 ? 7次 阅读
        单片机毕业设计之 -- 基于stm32的示波器设计

        无线遥控433MHz编码发射

        工作中遇到客户想采用AD检测的不同地电压方式发送不同RF值出来,下面就是具体发送的做法。硬件电路:协....
        发表于 11-06 11:21 ? 9次 阅读
        无线遥控433MHz编码发射

        [嵌入式开发模块]单片机串口模块:串口+定时器+环形缓冲区 实现无串口IDLE中断接收不定长串口数据

        前言本周看了些代码模块化和代码框架抽象分层的知识,现在尝试将手里代码重新整理成模块,方便以后业务开发....
        发表于 11-06 11:21 ? 11次 阅读
        [嵌入式开发模块]单片机串口模块:串口+定时器+环形缓冲区 实现无串口IDLE中断接收不定长串口数据

        MCU固件的"驱动分离式"设计思想~

        今天跟大家找了一种常见的应用与驱动分离设计的方式,对于目前一些高性能MCU还是值得使用一下的,不过对....
        发表于 11-06 11:05 ? 4次 阅读
        MCU固件的"驱动分离式"设计思想~

        【MCU】加了const就是最省RAM了吗?

        1、聊一聊 一首含蓄而又简单的歌曲,细细评味或许会在不经意间想起曾经的那么ta!2、正文部分1 现象....
        发表于 11-06 11:05 ? 8次 阅读
        【MCU】加了const就是最省RAM了吗?

        推荐分享灵动微MM32SPIN423C低压单片式电机驱动MCU

        灵动微MM32SPIN是电机与电源相关应用设计的专用产品家族,使用高性能Arm Cortex-M0与....
        发表于 11-06 11:05 ? 4次 阅读
        推荐分享灵动微MM32SPIN423C低压单片式电机驱动MCU

        数字IC设计入门(5)初识集成电路设计

        什么是集成电路。集成电路(integrated circuit)是一种微型电子器件或部件。采用半导体....
        发表于 11-06 11:05 ? 5次 阅读
        数字IC设计入门(5)初识集成电路设计

        keil C51结构体二维数组赋值问题

        请问谁遇到过这种问题吗? 我定义了个结构体数组,StruMicMode code tb_mic_mode[4][10],结构体定义为 typedef struct...
        发表于 11-06 10:51 ? 101次 阅读
        keil C51结构体二维数组赋值问题

        基于单片机电子指南针系统设计(毕业)-全套资料分享

        资料下载地址-1020(百度网盘):点击下载摘 要早期的指南针采用了磁化指针和方位盘的组合方式,整个....
        发表于 11-06 10:36 ? 2次 阅读
        基于单片机电子指南针系统设计(毕业)-全套资料分享

        RT-Thread Studio烧写国产mcu(swm320)固件的方法

        背景最近STM32的价格飞涨,
        发表于 11-06 10:35 ? 6次 阅读
        RT-Thread Studio烧写国产mcu(swm320)固件的方法

        以STM32L051为内核的模块采用LPTIM和RTC组合的方式唤醒进入STOP模式的MCU

        项目场景: 前一段时间开发一款断电延时继电器:就是当模块检测到断电后,则计时器开始计时,时间到了....
        发表于 11-06 10:21 ? 4次 阅读
        以STM32L051为内核的模块采用LPTIM和RTC组合的方式唤醒进入STOP模式的MCU

        STM32项目设计:基于STM32F4的电子阅读器制作教程

        基于STM32F4的电子阅读器一、项目功能要求项目说明:项目偏软件,但是要依赖于自己对硬件的熟悉和驱....
        发表于 11-06 10:21 ? 9次 阅读
        STM32项目设计:基于STM32F4的电子阅读器制作教程

        灵动微MM32SPIN360C获选2020年度国产MCU评选

        由芯师爷主办、深福保集团冠名的“2020硬核中国芯”活动中,灵动微电子获选2020年度国产MCU评选....
        发表于 11-06 10:21 ? 7次 阅读
        灵动微MM32SPIN360C获选2020年度国产MCU评选

        智能车原理图设计思路

        智能车原理图设计思路一.主控1.主控的选择(1)时钟频率(2)硬件资源(3)其他2.最小系统的设计(....
        发表于 11-06 09:51 ? 4次 阅读
        智能车原理图设计思路

        基于STM32的智能万年历设计

        1 设计任务及要求1.1 引言本文提出了一种基于 STM32 的智能万年历设计方案,本文案以 STM....
        发表于 11-06 09:51 ? 9次 阅读
        基于STM32的智能万年历设计

        [电路设计]按键方案

        [电路设计]按键方案本文记录和介绍几种按键解决方案,包括普通按键、按键编码电路、ADC按键的工作原理....
        发表于 11-06 09:51 ? 4次 阅读
        [电路设计]按键方案

        关于灵动微MM32SPIN系列MCU白色家电应用方案

        灵动微电子MM32SPIN系列MCU是专为电机与电源相关应用设计的专用产品,使用高性能Arm Cor....
        发表于 11-06 09:35 ? 4次 阅读
        关于灵动微MM32SPIN系列MCU白色家电应用方案

        基于单片机的音频信号分析仪毕业设计

        文末下载完整资料介绍??本音频信号分析仪由32位MCU为主控制器,通过AD转换,对音频信号进行采样,....
        发表于 11-06 09:20 ? 4次 阅读
        基于单片机的音频信号分析仪毕业设计

        体脂秤Flash MCU:HT45F75 入坑手册

        本篇博客主要记录我入坑HT45F75的过程,其中大部分资料文档均来自Holtek官方网站,只是按照我....
        发表于 11-05 21:05 ? 5次 阅读
        体脂秤Flash MCU:HT45F75  入坑手册

        学习单片机电路设计要怎样设计为好

        1、MCU的选择选择MCU时要考虑MCU所能够完成的功能、MCU的价格、功耗、供电电压、I/O口电平....
        发表于 11-05 21:05 ? 50次 阅读
        学习单片机电路设计要怎样设计为好

        【电赛资料】基于单片机的智能LED台灯设计(含原理图+代码+相关论文)

        本文提出一种基于单片机的智能LED台灯设计,该台灯具有手动、自动两种调节方式,能够在保证正常实用的状况下又能使电力得到充...
        发表于 11-05 15:28 ? 328次 阅读
        【电赛资料】基于单片机的智能LED台灯设计(含原理图+代码+相关论文)

        怎样去区分单片机和嵌入式呢

        单片机和嵌入式,其实没有什么标准的定义来区分他们,对于进行过单片机和嵌入式开发的开发者来说,都有他们自己的定义,接下来,...
        发表于 11-05 08:56 ? 0次 阅读

        初次接触stm32

        **前言**:因为诸多事情一直耽搁了,原本2020年前本文应当完成,今天抽出时间来弥补先前的失言。      &nbs...
        发表于 11-05 07:55 ? 0次 阅读

        如何学习嵌入式

        导言很荣幸你能阅读本博文,我猜测阅读本博文的对象主要有两类,一种是在校大学生,另外一种是其他行业的从业人员,想转行嵌入式...
        发表于 11-05 07:41 ? 0次 阅读

        嵌入式开发是什么呢

        大家好,我是无际单片机编程的徐工,今天闲暇,抽点时间和大家聊聊关于嵌入式开发的学习。因为爱迪生发明灯泡的故事,自小就在我...
        发表于 11-05 07:12 ? 0次 阅读

        如何直接使用RISC-V架构的汇编语言进行程序设计

        本文将介绍如何直接使用RISC-V架构的汇编语言进行程序设计。...
        发表于 11-05 06:20 ? 0次 阅读
        色在视频亚洲欧美-欧美色是免费视频-欧美精品视频 <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>