Linux中断子系统
文章平均质量分 83
nerdX
这个作者很懒,什么都没留下…
展开
-
中断子系统7_中断出口处理
// 中断公共入口1.1 common_interrupt: //所有可屏蔽中断函数的公共入口 SAVE_ALL //寄存器入栈 movl %esp,%eax // eax保存栈顶指针 call do_IRQ //中断处理函数 jmp ret_from_intr //从中断返回// 从中断返回// 函数主要任务:// 1.原创 2013-11-17 17:45:58 · 1965 阅读 · 0 评论 -
中断子系统8_软中断入口处理
// irq统计信息1.1 typedef struct { unsigned int __softirq_pending;//softirq标志位,32种softirq unsigned long idle_timestamp; unsigned int __nmi_count; //nmi中断发生次数 unsigned int apic_timer_irqs; /* arch dep原创 2013-11-17 21:00:28 · 1718 阅读 · 0 评论 -
中断子系统6_中断嵌套处理
// current_thread_info()->preempt_count bit划分// /*// * - bits 0-7 are the preemption count (max preemption depth: 256)// * - bits 8-15 are the softirq count (max # of softirqs: 256)// */原创 2013-11-14 14:51:14 · 1476 阅读 · 0 评论 -
中断子系统2_apic
// io apic, intel从pentiun III开始引入一种名为I/O高级可编程控制器(io apic)用于代替老式8259A// 可编程控制器。// apic, cpu内部都包含一个本地apic,每个本地apic都有32位的寄存器,一个内部时钟,一个本地定时设备// 及为本地apic中断保留的两条额外的IRQ线,LINT0和LINT1。所有本地apic都连接到一个外部 io ap原创 2013-10-29 22:29:37 · 1406 阅读 · 0 评论 -
中断子系统4_i8259a中断控制器
// 8259A 中的寄存器:// ICW: Initialization Command Word,初始化命令寄存器,用于初始化 8259A// OCW: Operation Command Word,操作命令字,用于控制 8259A// IRR: Interrupt Request Register,中断请求寄存器,共 8bit,对应 IR0~IR7 八个中断管脚。当某个管脚的中断原创 2013-11-09 20:19:42 · 1656 阅读 · 0 评论 -
中断子系统1_中断子系统初始化
// 控制单元对中断信号的处理:// 当cpu执行一条指令后,cs和eip包含下一条要执行的指令的逻辑地址,在处理那条指令之前,// 控制单元会检查在运行前一条指令时是否发生了一个中断或异常,如果发生了一个中断或异常,// 控制单元执行下列操作:// 1.确定与中断或异常关联的向量i// 2.读入由idtr寄存器指向的IDT表中的第i项// 3.从gdtr寄存器获得G原创 2013-10-29 21:23:42 · 1647 阅读 · 0 评论 -
中断子系统3_中断入口处理
// 中断入口// 注:gnu 每个符号分属global(被输出)和local(不被输出)两类中的一种。1.1 #define ENTRY(name) \ .globl name; \ ALIGN; \//之后的代码对齐到32字节,使用NOP(0x90)补齐 name:// 代码对齐// .align(n) power-of-2对齐// 4 对齐到16字节, 5 对齐到3原创 2013-11-08 20:49:27 · 1870 阅读 · 0 评论 -
中断子系统5_电流层处理
// 电流类型:// 1.电平型:handle_level_irq/* * Level type interrupts are active as long as the hardware line has * the active level. This may require to mask the interrupt and unmask * it aft原创 2013-11-13 22:34:04 · 1264 阅读 · 0 评论