中断(IRQ)只是ARM Cortex-M处理器中的一种异常,异常能够引起程序停止执行当前任务,去执行中断处理函数。
Cortex-M0和Cortex-M0+处理器内置了名为NVIC的中断控制器,并且支持最多32个中断请求(IRQ)输入,以及1个不可屏蔽中断(NMI)输入。根据微控制器产品设计的不同,IRQ和NMI可以由外部产生,也可以由片上外设产生。

Cortex-M0和Cortex-M0+处理器中的异常如下表所示

异常编号 异常类型 优先级 描述
1 复位 -3(最高) 复位
2 NMI -2 不可屏蔽中断
3 硬件错误 -1 错误处理异常
4~10 保留 NA
11 SVC 可编程 通过SVC指令进行系统调用
12~13 保留 NA
14 PendSV 可编程 系统服务,多用有OS环境,该异常请求可以被挂起
15 SysTick 可编程 SysTick定时器
16 中断 #0 可编程 外部中断0
17 中断 #1 可编程 外部中断1
47 中断 #31 可编程 外部中断31

1 复位

优先级最高的异常,当系统被复位之后首先被执行。复位向量位于第二个字空间,第一个字为栈顶指针。详细见:Cortex-M软件结构

2 NMI

不可屏蔽中断。
NMI同IRQ类似,只是它不能被禁止,并且优先级仅仅次于复位,它对于工业控制和汽车之类的高可靠性系统非常有用。根据控制器设计的不同,NMI可用于掉电处理,也可连接到看门狗单元,以便在系统停止响应时将系统复位。由于NMI不能被控制寄存器禁止,其响应的及时性得到保证。

3 HaardFault

硬件错误异常多用于处理程序执行时产生的错误,这些错误可以是试图执行未知的操作码、总线接口或存储系统的错误,也可以是试图切换至ARM状态之类的非法操作。

4 SVC

请求管理调用。
SVC指令执行时会产生SVC异常,通常用在具有哦操作系统的系统中,为应用程序提供了访问系统服务的入口。

5 PendSV

可挂起的系统调用。
PendSV是用于带OS的应用程序的另外一个异常,SVC异常字SVC指令执行后会马上开始,PendSV在这点上有所不同,他可以延迟执行,在OS上使用PendSV可以确保高优先级任务完成才执行系统调用。
PendSV通常用在任务调度中。想象一下这么一个情况,比如A任务的时间片到了之后,有IRQ正在运行,那么系统将会执行IRQ,IRQ返回后继续执行任务A,这样一来A任务就获得了额外的时间片。在A任务的时间片到了之后,马上执行PendSV指令,由于PendSV异常的优先级较低,等到执行完IRQ之后再来执行PendSV异常进行上下文切换。

6 SysTick

NVIC中的SysTick定时器为OS应用可以利用的另外一个持性。几平所有操作系的运行都需要上下文切换,而这一过程通常需要依靠定时器产生定时中断来完成。Cortex-M处理器内集成了一个简单的定时器,这样就使得设备间移植操作系统更加容易。对干Cortex-M0和Cortex-M0+处理器,SysTick定时器及其异常是可以选的,但是在多数微控制器设计中是存在的。

7 中断

一个中断是由外围​​信号或者通过软件请求生成异常。SWI实际上是一个IRQ。
基于Cortex-M0或Cortex-M0+的微控制器可以支持1到32个中断,中断信号可以连接到片上外设,也可以通过I/O端口连接到外部中断源上。根据微控制器设计的不同,外部中断的数量可能与Cortex-M处理器的中断数量不同。
外部中断只有在使能后才能使用,如果中断被禁止了,或者处理器正在运行另外一个相同或更高优先级的异常处理,则该中断请求会被存储在挂起状态寄存器中。当高优先级的中断处理完成或返回后,挂起的中断请求才可以执行。NVIC能够接受的中断请求信号可以是高逻辑电平,也可以是中断脉冲(最小为1个时钟周期)。需要注意的是,在微控制器的外部接口中,外部中断信号可以是高电平也可以是低电平,或者可以通过编程配置。

Cortex-M0和Cortex-M0+的异常类型相关推荐

  1. cortex-m3 操作模式 寄存器组 异常类型 堆栈 中断

    cortex-m3 操作模式 寄存器组 异常类型 堆栈 中断 参考 操作模式 处理器的操作模式:为了区别正在执行代码的类型.复位后,处理器进入线程模式.特权级. 处理者模式(handler mode) ...

  2. java异常类型和基本处理原则_Java异常控制机制和异常处理原则

    Java异常控制机制又被称为"违例控制机制". 捕获程序错误最理想的时机是在编译阶段,这样可以彻底避免错误的代码运行.但并非所有的错误都能在编译期间侦测到,有些问题必须在运行期间解 ...

  3. java常见的异常类型_Java几种常见的异常类型

    转载自:https://blog.csdn.net/niceworkgogogo/article/details/71746208 常见异常类型: 算数异常类:ArithmeticExecption ...

  4. 常见的几种异常类型 Exception

    常见异常类型: Java中的异常分为两大类: 1.Checked Exception(非Runtime Exception) 2.Unchecked Exception(Runtime Excepti ...

  5. python中异常的处理及断言,包括异常类型、异常捕获、主动跑出异常和断言

    一.异常类型介绍 什么是异常?异常即是一个事件,该事件会在程序执行过程中发生,会影响程序的正常执行,一般情况下,在python无法正常处理程序时就会发生一个异常.异常是python对象,表示一个错误. ...

  6. python异常类型(Exception只是常规错误的基类)

    在用try-except-finally-机制处理异常的时候,一定要注意异常的继承关系. 例如在except中如果有StandardError,那么永远也捕获不到ValueError,因为ValueE ...

  7. java异常类型 数组越界_java数组中的异常类型整理

    对于程序中出现异常,是很多程序员不想看到的情况,因为这就需要我们去查询异常的原因,然后进行一些处理异常的操作.在Java数组操作时,也会有一些异常情况的发生.这里我们罗列出了两种:ClassCastE ...

  8. python自定义异常类时、可以继承的类是_Python异常类型及处理、自定义异常类型、断言...

    异常的概念.识别报错信息 异常处理 断言的基本使用 异常类型(异常就是报错) 常见异常 NameError:名称错误 SyntaxError:语法错误 TypeError:类型错误 错误回溯 查看报错 ...

  9. java中什么时候应用异常_生产Java应用程序中的十大异常类型-基于1B事件

    java中什么时候应用异常 Pareto记录原理:97%的记录错误语句是由3%的唯一错误引起的 在最新的数据整理帖子之后,我们收到了很多反馈和问题,我们发现97%的记录错误是由10个唯一错误引起的 . ...

  10. 生产Java应用程序中的十大异常类型-基于1B事件

    Pareto记录原理:97%的记录错误语句是由3%的唯一错误引起的 在最新的数据整理帖子之后,我们收到了很多反馈和问题,在该文章中,我们显示97%的记录错误是由10个唯一错误引起的 . 根据普遍的需求 ...

最新文章

  1. 转载:一道逻辑题 房间里有100盏电灯
  2. 祝贺JeecgBoot获评为2019年度最受欢迎中国开源软件
  3. 51nod 1292 字符串中的最大值V2(后缀自动机)
  4. gcc编译ceres-solver报错‘is_trivially_default_constructible’ is not a member of ‘std’
  5. java interface abstract
  6. 中标麒麟怎么安装deb包_请教,如何制作中标麒麟系统可用的安装包?
  7. 11.Linux 高性能服务器编程 --- 定时器
  8. 达观数据:Tornado原理浅析及应用场景探讨
  9. 【通信】基于matlab量子密钥分发密钥率仿真【含Matlab源码 1662期】
  10. “win+PrtSc”图片没有保存到图片文件夹中的问题
  11. SSI接口 AC97
  12. 2021国考申论三个月学习计划
  13. 使用CSS实现图片叠加效果
  14. C语言农历天干地支,求思路。农历年月日时推天干地支
  15. Ubuntu:安装rust
  16. 基于51单片机的火焰报警器
  17. 用JavaScript canvas做的走迷宫游戏,肝了一下午,请帮忙点个赞!
  18. 大型机半个世纪发展史
  19. 2022年度湖北省科技创新人才及服务专项软科学研究项目申报条件、流程和项目类别
  20. horizon学习小结

热门文章

  1. PWM占空比和电机转速有什么线性关系
  2. 实战 | 航空公司客户价值分析-LRFCM模型
  3. 反向题在测试问卷信效度_问卷一定要做信度效度检验吗?如果含有多选题怎样做信度分析,请各位高手帮帮忙。...
  4. Android网络请求框架Velley的用法与解析
  5. Android垂直方向滚动的跑马灯,带gif
  6. android12.0(S) Launcher3 去掉抽屉
  7. Pycharm中工程项目的多个python环境的管理使用方法的一点点理解
  8. 如何修改input提示文字样式
  9. java利用PageHelper.startPage(page, pageSize)分页
  10. 《哈佛大学幸福课》笔记