
中断和异常
M0内核
Mikko丶
深谙淡然,静赏花开。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
对于Cortex-M0内核的中断的抢占和嵌套的理解
首先,我们需要理清楚 异常 和中断 的关系: 异常 是能够引起程序流偏离正常流程的事件,当异常 发生的时候,正在执行的程序就会处于挂起状态,处理器转而执行一块与该事件相关的代码块(异常处理) 事件 可以是外部输入也可以是内部产生,外部产生的事件被称为 中断或者中断请求(IRQ),微控制器的中断可以由片上外设或者软件产生 异常嵌套 异常或被划分为多个优先级,在执行低优先级的异常时,更高...原创 2020-03-05 10:45:05 · 2440 阅读 · 0 评论 -
异常入口流程的细节
当异常发生时,以下的情况会随之发生: 1 压栈,并且栈指针更新; 2 处理器取出异常向量并且将其写入PC 3 寄存器更新(LR、IPSR和NVIC寄存器) 压栈 当异常发生时,八个寄存器会被自动压栈 这些寄存器包括R0-R3,R12,R14(链接寄存器),返回地址(下一条指令的地址或程序计数器),程序状态寄存器(xPSR)。 将寄存器R0-R3,R12,PC,LR和xPSR保存到栈中的原因是,这...原创 2019-12-24 14:10:48 · 354 阅读 · 0 评论 -
向量表以及异常流程概述
1 对于Cortex-M0处理器,内置的中断控制器NVIC支持向量中断,这就意味着不同中断的异常向量是独立的,而且中断服务程序的入口自动分配,无需软件干预。 2 异常向量的存储顺序同异常编号一致。 3 由于Cortex-M0处理器只支持几个系统异常,所以向量表中的某些空间没有使用。 接收异常请求 需要满足以下几个条件: 1 对于中断和Systic中断请求,中断必须使能 2处理器正在执行的异常处理...原创 2019-12-24 11:38:42 · 1203 阅读 · 0 评论 -
中断服务函数与函数调用的区别
在《微机原理》和《计算机组成》等课程[1-4]教学中(本文以MCS-51单片机为例),中断过程既是教学难点又是教学重点,它与主程序调用子程序过程有一定相似性,但又有很大区别,调用子程序过程相对比较容易掌握,通过把两过程结合起来,采用比较教学方法,能收到了很好的教学效果。 1、两过程定义与作用 子程序是微机基本程序结构中的1种,基本程序结构包括顺序(简单)、分支(判断)、循环、子程序和查表等5种。 ...原创 2019-12-23 17:02:02 · 5795 阅读 · 0 评论 -
中断调用与子程序调用
1、两过程定义与作用 子程序是微机基本程序结构中的1种,基本程序结构包括顺序(简单)、分支(判断)、循环、子程序和查表等5种。 子程序是一组可以公用的指令序列,只要给出子程序的入口地址就能从主程序转入子程序。子程序在功能上具有相对的独立性,在执行主程序的过程中往往被多次调用,甚至被不同的程序所调用。一般微机首先执行主程序,碰到调用指令就转去执行子程序,子程序执行完后,返回指令就返回主程序断点...转载 2019-12-23 16:52:47 · 2714 阅读 · 0 评论 -
异常优先级的定义
抢占 从当前正在运行的任务切换到异常处理的过程叫做抢占。原创 2019-12-20 14:09:39 · 994 阅读 · 0 评论 -
Cortex-M0的异常类型
通常的作法是,异常会被划分为多个优先等级,在执行低优先级的异常处理时,更高优先级的异常可以被触发并且执行,这个过程一般被称作***异常嵌套***。异常的优先级可以是可编程的,也可以是固定的。除了优先级的设置,有些异常(包括多数的中断)可以由软件禁止或使能。 Cortex-M0处理器内置了中断控制器,并且支持最多32个中断请求(IRQ)输入,以及1个不可屏蔽中断(NMI)输人。根据微控制器产品设计的...原创 2019-12-19 15:16:54 · 425 阅读 · 0 评论