第3章 异常和中断

本文介绍了Cortex-M处理器如何通过NVIC处理中断和异常,强调中断是异常的一种特殊情况。Cortex-M4微控制器的NVIC支持多个中断源,并具有可编程优先级。异常分为系统异常和外部中断,系统异常包括非法指令、地址越界等,而外部中断通常由外部设备事件触发。异常处理程序是编译映像的一部分,中断向量表中1-15编号为系统异常,16及以上为中断输入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

中断属于异常的一种

在这里插入图片描述

所有的cortex-m处理器都会提供一个用于中断处理的嵌套向量中断控制器(NVIC)。除了中断请求,还有其他需要服务的事件,将其称为异常。按照ARM的说法,中断也是一种异常。

处理异常的程序代码一般被称作异常处理,它们属于以编译程序映像的一部分。典型的cortex-m4微控制器中,NVIC接收多个中断源产生的中断请求,如下图所示:
在这里插入图片描述

异常在中断向量表里的的编号

cortex-m处理器的异常架构具有多种特性,支持多个系统异常和外部中断。编号1-15的为系统异常,16及以上的则为中断输入(处理器的输入,不必从封装上的I/O引脚上访问)。包括所有中断在内的多数异常,都具有可编程的优先级,一些系统异常则具有固定的优先级。
在这里插入图片描述

狭义的异常和中断

上面已提到了,中断是异常的一种。
有时候大家说的异常,不是指上面那个,是指狭义上的异常。
外中断——就是我们指的中断——是指由于外部设备事件所引起的中断,如通常的磁盘中断、打印机中断等;
内中断——就是异常——是指由于 CPU 内部事件所引起的中断,如程序出错(非法指令、地址越界)。内中断(trap)也被译为“捕获”或“陷入”。
异常是由于执行了现行指令所引起的。由于系统调用引起的中断属于异常。
中断则是由于系统中某事件引起的,该事件与现行指令无关。
在这里插入图片描述

不过建议还是按中断属于异常来记忆。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值