嵌入式中断处理的简单描述
## 通用的中断处理过程:
中断源---》中断路径---》中断响应
中断由中断源发出,进过中断路径上报,最终由CPU响应中断处理。这是一般CPU对中断处理的流程mips也不例外。以V3R8单板的按键中断处理流程为例:
按键产生中断--》通过cpld汇聚上报--》通过gpio送达cpu--》送达pic响应--》由cpu核心响应运行中断处理函数代码
## 各部分的工作为:
中断源这里为按键的物理硬件,在很多情况下将中断和异常区分为一个为异步发生的一个为同步发生的,这里的异步就是由于很多中断由cpu外设器件产生于cpu自身时钟没有关系,所以可以在任何时候发出信号而不受cpu时钟周期的影响,在按键中断的情况中断信号随按键的发生而产生。
中断通路的作用可以认为是将中断多级汇聚的过程,类似于一个树状的结构,其作用主要是在cpu响应中断之后中断处理程序根据中断路径逐级查找中断来源,其查找过程类似于cpu中cause寄存器中的标识,每一级中断路径的分支都会讲下一级中断进行标识,由于这个标识是被软件读取并识别的所以可以定义的比较灵活,并不需要像cause寄存器一样严格的进行位位对应。在单板的外部中断路径上主要包括的器件为:
cpld:进行外部二级中断汇聚,将类似于按键、温感等中断汇聚为cpld中断进行同意上报.
gpio:gpio管脚可以理解为soc片上对外开放的可编程管教,由于soc片上有众多的器件不可能将每一个器件的输入输出都对片外开放,这里就通过gpio将需要对外开放的io管脚对应到片外物理管脚上,在v3r8单板中断处理不分gpio的作用是将cpld中断引导至片内pic器件。
pic:为soc片上的中断控制芯片,可以将其理解为集成度最深的一层中断汇聚,由于片上器件也可以产生中断所以在pic芯片上对片上器件中断进行了预先的定义,同时外部中断被引导至pic之后也会得到统一的处理。
中断最终上报给cpu之后,将按照mips体系定义的一般中断处理流程进行处理。