《Cortex-M0权威指南》之体系结构---异常和中断

转载请注明来源:cuixiaolei的技术博客


   异常会引发程序控制的变化。在异常发生时,处理器中止当前的任务,转而执行异常处理程序,异常处理完成后,会继续执行刚才的任务。异常分为不少种,中断是其中之一。Cortex-M0处理器最多支持32个外部中断(IRQ)和一个不可屏蔽中断(NMI),中断事件的处理叫作中断服务程序(ISR),中断通常由片上的IO口的外部输入产生(边沿触发和电平触发)。编程

  Cortex-M0处理器上可用的中断数量不肯定,由厂商决定,最多32个外部中断。若是系统的外设不少,因为中断数目有限,多个中断源可能使用同一个中断链接。ui

  除了IRQ和NMI,M0处理系还支持不少系统异常,它们主要用于操做系统和错误处理。spa

 

异常类型      异常编号        描述操作系统

Reset         1         上电复位或系统复位blog

NMI         2         不可屏蔽中断事件

Hard fault      3         用于错误处理,系统检测到错误后被激活get

SVCall         11         请求管理调用,在执行SVC指令被激活,主要用做操做系统博客

PendSV       14         可挂起服务(系统)调用硬件

SysTick       15         系统节拍定时器异常,通常在OS种用做周期系统节拍异常定时器

IRQ0-IRQ31      16-47        中断,可来自于外部,也可来自片上外设

 

  每个异常都对应一个异常编号,这在包括IPSR在内的许多寄存器种都有提现,并且这个异常编号还指明了异常向量的地址。在设备驱动库种,异常编号和中断编号是相互独立的。系统异常使用负数定义,中断使用0-31正数定义。

  复位是一种特殊的异常,数值为1,在IPSR中不可见。

  除了NMI,硬件错误和复位,其余全部异常的优先级都是可编程的,NMI和硬件错误的优先级是固定的,而且比其余异常的优先级高。

相关文章
相关标签/搜索