TreeMind树图在线AI思维导图
当前位置:树图思维导图模板IT互联网互联网干货处理程序执行思维导图

处理程序执行思维导图

  收藏
  分享
免费下载
免费使用文件
U67362080 浏览量:172022-09-14 09:18:49
已被使用3次
查看详情处理程序执行思维导图

Linux中有关处理程序执行的思维导图,包括中断处理程序 IRQn_interrupt、处理程序执行概念、do_IRQ( )函数

树图思维导图提供 处理程序执行思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 处理程序执行思维导图  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:b741e955f44ef0050e61a7178063eb28

思维导图大纲

处理程序执行思维导图思维导图模板大纲

处理程序执行概念

从中断请求的发生到 CPU 的响应,再到中断处理程序的调用和返回,沿着这一思路走一遍,以体会 Linux 内核对中断的响应及处理

外设的驱动程序都已完成了初始化工作,并且已把相应的中断服务例程挂入到特定的中断请求队列

当前进程正在用户空间运行(随时可以接受中断),且外设已产生了一次中断请求

中断处理程序 IRQn_interrupt

经过 gcc 的预处理,宏定义 BUILD_16_IRQS(0x0) 会被展开成 BUILD_IRQ(0x00)至BUILD_IRQ(0x0f)

把中断号减 256 的结果保存在栈中

进入中断处理程序后第一个压入堆栈的值

堆栈中 ORIG_EAX 的值

对于每个中断处理程序,唯一不同的就是压入栈中的这个数

中断处理程序会使用的所有 CPU 寄存器都保存在栈中

do_IRQ( )函数

流程

do_IRQ( )的返回地址

由 SAVE_ALL 推进栈中的一组寄存器的值

ORIG_EAX(即 n-256)

CPU 自动保存的寄存器

具体说明

define IRQ_INPROGRESS

1

正在执行这个 IRQ 的一个处理程序

define IRQ_DISABLED

2

由设备驱动程序已经禁用了这条 IRQ 中断线

define IRQ_PENDING

4

 一个 IRQ 已经出现在中断线上,且被应答,但还没有为它提供服务

define IRQ_REPLAY

8

当 Linux 重新发送一个已被删除的 IRQ 时

define IRQ_AUTODETECT

16

当进行硬件设备探测时,内核使用这条 IRQ 中断线

define IRQ_WAITING

32

当对硬件设备进行探测时,设置这个状态以标记正在被测试的 irq 

define IRQ_LEVEL

子主题 1

64

IRQ level triggered

define IRQ_MASKED

128

IRQ masked - shouldn't be seen again

define IRQ_PER_CPU

256

IRQ is per CPU

从中断返回

ret_from_intr() 

终止中断处理程序

ret_from_sys_call( )

终止系统调用,即由 0x80 引起的异常

ret_from_exception( )

终止除了 0x80 的所有异常

相关思维导图模板

执行函数思维导图思维导图

树图思维导图提供 执行函数思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 执行函数思维导图  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:6fa6d5a6f25276068bc7a36624cca0cb

程序执行思维导图思维导图

树图思维导图提供 程序执行思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 程序执行思维导图  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:b2c03df9afd131772df55f29fcbc1f0b