错误是异常的一个子集。总线错误:一个指令获取或向量表读取,数据访问;一个内部检测到的错误:未定义的指令,尝试改变BX指令的状态;尝试从一个标记被XN内存区域执行指令。

除了硬件错误外的所有错误异常均有可配置的异常优先级。软件可以失能那些错误处理的执行。

通常,异常的优先级连同异常屏蔽寄存器的值共同决定处理器是否进入错误处理和是否可以抢占另一个错误处理。

在某些条件下,一个可配置优先级的错误被对待为硬件错误,这被称为优先级升级,错误被描述为升级至硬件错误。这种情况出现在:一个错误处理引起了和正在服务的同样的错误,这个升级至硬件错误因为错误处理和目前的错误有相同的优先级不能抢占它自己;一个错误处理引起了一个相等或低优先级的错误;一个异常处理引起一个相等或低优先级的错误;一个错误出现而这个错误处理未使能。

如果在进入总线错误压栈时出现一个总线错误,这个总线错误不能升级为硬件错误。这意味着破坏的栈引起的错误,尽管压栈出错这个错误处理执行。这个错误处理操作但栈目录破坏。

只有复位和不可屏蔽中断可以抢占固定优先级的硬件中断,硬件中断可以抢占除复位、不可屏蔽中断、另一个硬件错误外的任何中断。

错误状态寄存器指明错误的原因。对于总线错误和内存管理错误,错误地址寄存器指明引起错误的操作访问地址。

当执行NMI或硬件错误处理时,如果一个硬件错误出现,处理器进入锁定状态。当处理器进入锁定状态,不执行任何指令。处理器保持锁定状态直到:复位或NMI出现。如果锁定状态出现引起于NMI处理,一个随后的NMI不能导致处理器离开锁定状态(那不就只能复位咯)。

STM32F10xxx20xxx21xxxL1xxxx Cortex-M3程序设计手册 阅读笔记二(4):Cortex-M3处理器错误处理相关推荐

  1. STM32F10xxx20xxx21xxxL1xxxx Cortex-M3程序设计手册 阅读笔记二(3):Cortex-M3处理器异常模型

    这一部分描述异常模型. 每一个异常都存在一个状态: 闲置       这个异常没有活跃,没有暂停 待进行    异常等待被处理器服务.一个外设或软件中断请求可以改变相应中断的状态到即将发生状态. ·活 ...

  2. STM32F10xxx20xxx21xxxL1xxxx Cortex-M3程序设计手册 阅读笔记二(1):Cortex-M3处理器程序模型

    本节介绍Cortex-M3程序模型.除了各个核心寄存器描述之外,还包括关于程序执行和堆栈的处理器模式和特权级别的信息. 处理器模式:      线程模式:用于执行应用软件. 处理模式:用于处理异常,当 ...

  3. STM32F10xxx20xxx21xxxL1xxxx Cortex-M3程序设计手册 阅读笔记二(2):Cortex-M3处理器内存模型

    这一部分描述了处理器内存图,内存访问的行为,位带特征.处理器有一个提供了高达4GB可寻找内存的固定内存图. 内存地图分裂内存图为区域.每一个区域定义了内存的类型,一些区域还有额外的内存属性.内存的类型 ...

  4. STM32F10xxx20xxx21xxxL1xxxx Cortex-M3程序设计手册 阅读笔记二(5):Cortex-M3处理器能量管理

    Stm32和Cortex-M3处理器睡眠模式降低能量损耗: 睡眠模式停止处理器时钟,所有其它系统和外设时钟保持运行. 深度睡眠模式停止了大部分stm32系统和外设时钟.在产品级别,可能相应的为停止模式 ...

  5. STM32F10xxx20xxx21xxxL1xxxx Cortex-M3程序设计手册 阅读笔记四(5):系统滴答定时器

    处理器有一个24位系统定时器,SysTick,它可以向下计数从重载值到0,在下一个时钟边沿重载LOAD寄存器中的值,然后在随后的时钟下降计数. 当处理器停止进行调试时,计数值不再缩减. 系统滴答控制和 ...

  6. STM32F10xxx20xxx21xxxL1xxxx Cortex-M3程序设计手册 阅读笔记三(3):Cortex-M3指令描述

    下面部分将会给出使用指令的更多信息. 1.    操作对象: 一个指令操作对象可以是ARM寄存器.常量.或另一个指令具体参数.指令作用于操作对象而且通常间结果存储在目的寄存器.当在指令中有一个目的寄存 ...

  7. STM32F10xxx20xxx21xxxL1xxxx Cortex-M3程序设计手册 阅读笔记四(3):嵌套向量中断控制器

    这一部分描述了嵌套向量中断控制器和它使用到的寄存器.NVIC支持: 高达81个中断(根据STM32设备的型号,参照数据手册): 对每个中断可编程优先级级别0-15,一个高的优先级级别相应着较低的优先级 ...

  8. STM32F10xxx20xxx21xxxL1xxxx Cortex-M3程序设计手册 阅读笔记四(1):关于STM32核心外设

    私有外设总线的地址地图如下: 软件可以在0xE000ED90读MPU类型寄存器,测试内存保护单元的存在. 在寄存器描述中,所需的特权给出了访问寄存器时所需的特权级别, 特权的:只有特权软件可以访问这个 ...

  9. STM32F10xxx20xxx21xxxL1xxxx Cortex-M3程序设计手册 阅读笔记三(4):Cortex-M3指令分类

    1.内存访问指令 2.通用数据处理指令 3.乘除指令 4.饱和指令 SSAT和USAT 5.位域指令 6.混杂指令

最新文章

  1. UGUI的优点新UI系统四 开源
  2. 关于网站调用在线翻译api实现翻译功能
  3. go的25个关键字(保留字)和36个预定标识符
  4. outlook2013邮箱找不到服务器,outlook发邮件总提示找不到
  5. 谷歌浏览器javascript调试教程
  6. 计算机绘图的展望,计算机绘图技的术发展与展望.doc
  7. 2016级算法第六次上机-D.AlvinZH的学霸养成记V
  8. win下 git gui 使用教程
  9. python之celery使用详解一
  10. ”三不跳“ - 再说跳槽
  11. C++11::lambda 的用法
  12. 【Git/Github学习笔记汇总篇】
  13. opencv-4.5.5-vc14_vc15配置环境VC++
  14. 深山红叶袖珍PE工具箱V16正式版
  15. Eclipse_设置JSP模板
  16. 2020年,生活从“不易”开始
  17. uplift模型实战代码
  18. VC 蓝牙设备 编程
  19. 初识HTML,最基础走起~
  20. EXCEL数据之美:带你走进数据可视化

热门文章

  1. 吴式太极大师修丕勋简介
  2. 微机原理-第五章 微型计算机接口和外设的数据传输
  3. <二> objectARX开发:创建和编辑基本图形对象
  4. stream流 lambda 练习
  5. 恒生电子实习记录-10
  6. CET-4 week 6th -- 后缀
  7. MDClub(开源社区系统) v1.0.0
  8. 用python做题——PythonChallenge-1
  9. 【Argoverse 1 Motion Forecasting Dataset】轨迹预测数据集简介
  10. 使用Python计算身份证号码最后检验位