购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1. 7.1 异常类型

Cortex-M3 自带的异常是 16 个,其中异常号为 0 与 7~10 的异常保留,以供将来使用。异常主要有以下几种。

1.复位

复位的异常号为 0,优先级为-3(最高优先级)。

上电或热复位时,复位启动。异常模型将复位当做一种特殊的异常形式。当复位使能时,处理器可能在一条指令的任何位置停止操作。当复位禁能时,由向量表中的复位表项提供重新开始执行的地址。在线程模式下,重新执行是特权执行。

2.NMI

不可屏蔽中断(NMI)可由一个外设发出信号或由软件触发。这是除复位外的最高优先级的异常。它被永久性使能,具有固定的优先级-2。NMI不能因任何其他异常的激活而被屏蔽或阻止,不能被除复位外的其他任何异常抢占。

3.硬故障

硬故障是一种异常,其发生原因是异常在处理期间出错,或异常无法被任何其他异常机制管理。硬故障具有固定优先级-1,这意味着它的优先级高于任何具有可配置优先级的异常。

4.存储器管理故障

存储器管理故障是一种由与存储器保护相关的故障引发的异常。对于指令和数据存储事务,MPU或固定的存储器保护约束条件决定此故障。此故障用于终止对从不执行(XN)存储区的指令的访问,即使 MPU 被禁能也是如此。

5.总线故障

总线故障是一种异常,由一个指令或数据存储器事务的存储器的相关故障引发。这可能源于从一个存储器系统总线上检测出的错误。

6.使用故障

使用故障是与指令执行相关的故障导致的一种异常。使用故障包括:

(1)未定义的指令;

(2)非法的非对齐访问;

(3)指令执行时的无效状态;

(4)异常返回时的错误。

当内核被配置为报告使用故障时,以下情况可以导致一个使用故障:

(1)字和半字存储器访问时的非对齐地址;

(2)除以零。

7.SVCall

SVCall是指执行系统服务调用指令(SVC)引发的异常。一次超级用户调用是由SVC指令触发的异常。在OS环境中,应用程序可使用SVC指令来访问OS内核函数和设备驱动程序。

8.PendSV

PendSV是一个对系统级服务的中断驱动请求。在OS环境中,当无其他有效的异常时,使用PendSV进行上下文切换。

9.SysTick

SysTick是当系统定时器达到零时产生的异常。软件也可以产生一个SysTick。在OS环境中,处理器可将此异常用做系统节拍。

10.中断(IRQ)

中断(IRQ)是由一个外设发出信号,或由一个软件请求产生的异常。所有中断都与指令执行异步。在系统中,外设使用中断与处理器进行通信。

注意: 中断(IRQ)在LPC17XX中是指一些外设的中断,如看门狗、UART的中断。在LPC176X总共有 35 个中断(LPC177X/LPC178X中为 41 个)。 nMW7GUNaxJKDm8phUuIQMLIFy7l42EsUbMkfRXqzUuaEogyD5WPBEQo3ixJFKQe0

点击中间区域
呼出菜单
上一章
目录
下一章
×