资讯详情

Linux中对中断的处理

Linux中断处理

对大多数异常,Linux将异常处理异常的当前过程发送信号即可结束异常处理,具体异常处理转移到信号处理程序。

由于中断事件的发生可能与正在执行的当前过程无关,因此向当前过程发送信号毫无意义。

Linux中断有三种类型

  • IO中断,IO外设中断请求。
  • 中断时钟,中断时钟的请求,告知固定时间间隔
  • 多处理器系统中处理器系统中发出的处理器中断请求

IO中断:每个能发中断请求的外设控制器都有一条IRQ线,所有IRQ连接到可编程中断控制器的线PIC(programmable Interrupt Controller)对应的IRQ引脚上,PIC中每个IRQ引脚有一个数字,比如IRQ0,IRQ1,…IRQi,…,将与IRQi相关中断型号设置为32 i。IRQ是中断请求号。IRQ是中断请求号。 Interrupt ReQuest

可编程:寄存器可被CPU存取控制。

PIC中间寄存器:中断屏蔽字寄存器,中断请求寄存器。CPU可以通过OUT将一个字送到中断屏蔽字寄存器。CPU发出中断查询(控制线),设置屏蔽字。中断请求信号INTR和中断型号都是送给和中断型号的CPU(数据线)。

指令结束后,在执行下一个指令之前查看中断,如果没有,则继续执行下一个指令。

确定优先级,然后查找编码。

处理过程

检测、响应、处理。

PIC虚对所有外设来的IRQ如果至少有一个请求按优先级排队IRQ如果要求,未被屏蔽的,PIC向CPU的INTR引脚中断请求。

CPU每次执行一个指令,都会查询INTR,如发现中断请求,则进入中断响应过程(关闭中断,保护断点和现场,发送中断查询信号),调出中断服务程序执行。

所有中断服务程序的结构相似,分为以下三个阶段:

  • 准备阶段。各通用寄存器和旧屏蔽状态字(称为现场信息)的内容保存在内核栈中,请求IRQi的值,并给PIC回发响应信息,允许其发送新的中断请求信号。
  • 处理阶段IRQi相应的中断服务例程ISR(Interrupt Server Routine)。中断类型号32 i
  • 恢复阶段。恢复内核栈中各寄存器的内容,切换到用户状态,返回到当前流程逻辑控制流的断点。

标签: srim2嵌入式微差压传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台