异常会引起程序控制的变化。在异常发生时,处理器停止当前的任务,转而执行被称作
异常处理的程序;异常处理完成后,还会继续执行刚才暂停的正常程序流程。异常分为很
多种,中断只是其中的一种。Cortex- M0处理器最多支持32个外部中断(通常称作IRQ)和
一个被称作不可屏蔽中断(NMI)的特殊中断,中断事件的异常处理通常被称作中断服务程
序(ISR),中断一般由片上外设或者I0口的外部输人产生。Cortex-M0 处理器上可用的中
断数量不定,不同的微控制器的数量可能不一样。如果系统的外设较多,由于中断数目的限
制,多个中断源可能会共用同一个中断连接。
除了NIM和IRQ,Cortex-M0处理器还支持许多系统异常,它们主要用于操作系统和
错误处理(见表3.4)。
复位是- -类特殊的异常。如果发生复位的话,Cortex MO处理器将会退出主程序,并且
在线程模式中执行复位处理(不必从处理模式返回到线程模式)。另外,数值为1的异常号
在IPSR中是不可见的。
除了NMI、硬件错误和复位,其他所有异常的优先级都是可编程的。NMI和硬件错误
的优先级都是固定的,并且比其他异常的都要高,第8章中有这方面的更多细节。