中断子系统
文章平均质量分 92
Hacker_Albert
If I am not for myself, who will be for me?
If I am only for myself, what am I?
If not now, when?
展开
-
linux IRQ Management (十一) - 龙芯中断
了解loongson irq1.MIPS CPU总共定义了5种异常。分别为:冷重启、热重启异常TBL充填异常XTBL充填异常cache错误异常异常当发生上面异常后,CPU会跳转到上面所述地址开始执行异常处理程序。对于中断,CPU会跳转到其他类型的异常位置开始执行异常处理程序。当MIPS CPU发生中断后,CPU的状态变化到如下状态,总结如下列表:EPC寄存器保存了发生中断是程序执行指令的地址CP0中STATUS寄存器 EXL置位为1,表示正在异常状态,.原创 2020-11-02 13:26:55 · 733 阅读 · 0 评论 -
linux IRQ Management (十) - 龙芯loongson 中断概述
了解loongson 中断机制1.MIPS 中断类型 在mips体系结构中,中断、陷阱、系统调用和任何可以中断程序正常执行的情况都称作异常。mips的异常是精确异常,在发生任何异常时都指向一条指令,所有这条异常指令之前的指令都执行完成了,所有这条指令之后的指令都还没开始执行。1.1.异常种类1.2.异常相关寄存器 MIPS exceptions are handled by a peripheral device to the CPU called coprocessor 0 (cp0.原创 2020-11-02 13:19:56 · 840 阅读 · 0 评论 -
linux IRQ Management(九)- 驱动中断常用API
了解驱动常用API1.irq的打开和关闭 最基本的一对:enable_irq(unsigned int irq);disable_irq(unsigned int irq); 这两个API应该配对使用,disable_irq可以被多次嵌套调用,要想重新打开irq,enable_irq必须也要被调用同样的次数,为此,irq_desc结构中的depth字段专门用于这两个API嵌套...原创 2020-04-12 18:16:48 · 835 阅读 · 1 评论 -
linux IRQ Management(八)-- 中断下半部
了解Deferred work1.Background information Deferred work is a class of kernel facilities that allows one to schedule code to be executed at a later timer. This scheduled code can run either in the c...原创 2019-10-31 16:54:33 · 927 阅读 · 0 评论 -
linux IRQ Management(七)- 中断处理流程
了解如何申请irq1.Introduction 如何向Linux Kernel中的中断子系统注册中断处理函数?2.High-level interrupt-management interfaces The generic IRQ layer provides a set of function interfaces for device drivers to grab IRQ d...原创 2019-10-20 17:49:31 · 3687 阅读 · 0 评论 -
linux IRQ Management(六)- DTS及调试
了解DTS Interrupt 设置方式。1.DTS 中 interrupt 描述interrupt-controller - 一个空的属性定义, 该节点作为一个接收中断信号的设备。#interrupt-cells - 这是一个中断控制器节点的属性。它声明了该中断控制器的中断指示符中 cell 的个数(类似于 #address-cells 和 #size-cells)。in...原创 2019-09-30 17:27:07 · 1953 阅读 · 0 评论 -
linux IRQ Management(五)- irq_desc
了解 IRQ number和中断描述符。1.概念1.1.通用中断代码处理示意图 通用中断处理的示意图如下: 对于每一个外设的IRQ 都用struct irq_desc来描述,称之为中断描述符。该数据结构保存了关于所有IRQ的中断描述符信息(上图中红色框图内)。 当中断发生时,首先获取触发中断的HW interupt ID,然后通过irq domain译码成IRQ number...原创 2019-09-30 10:40:29 · 2429 阅读 · 1 评论 -
linux IRQ Management(四)- IRQ Domain
了解IRQ Domain1.概述 Linux kernel使用如下两个ID来标识一个来自外设的中断:IRQ number,CPU需要为每一个外设中断编号,即IRQ Number。这个IRQ number是一个虚拟的interrupt ID,和硬件无关,仅仅是被CPU用来标识一个外设中断。HW interrupt ID,对于interrupt controller而言,它收集了...原创 2019-09-27 17:03:48 · 5072 阅读 · 0 评论 -
linux IRQ Management(三)- IRQ Framework
学习arm64 interrupt函数接口1.开启、关闭irq//include/linux/irqflags.h: #define local_irq_enable() \ do { trace_hardirqs_on(); raw_local_irq_enable(); } while (0) ...原创 2019-04-30 17:15:00 · 1557 阅读 · 0 评论 -
x86 real mode/protected mode interrupts
学习xv6 interrupts原创 2019-04-15 08:25:15 · 649 阅读 · 0 评论 -
Intel 中断控制器8259A
学习Programmable Interrupt Controller (PIC) 8259A1.Introduction The Intel 8259A Programmable Interrupt Controller handles up to eight vectored priority interrupts for the CPU.It is cascadable for u...原创 2019-03-27 08:13:22 · 1074 阅读 · 0 评论 -
linux IRQ Management(二)- ARM异常模式
学习ARM 异常、中断模式。1.工作模式7种工作模式,分别是用户模式(user)、快速中断模式(fiq)、外部中断模式(irq)、管理模式(svc)、中止模式(abt)、未定义指令模式(und)和系统模式(sys)。除去用户模式和系统模式以外,其余5种模式称为异常模式,常用于处理中断或异常,以及需要访问受保护的系统资源等情况。2.异常当一个异常引起工作模式的改变时,ARM核自动地:把...原创 2019-03-26 17:01:22 · 1878 阅读 · 0 评论 -
linux IRQ Management(一)- ARM GIC
学习中断子系统1.InterruptInterrupt是异步产生的,不是由CPU执行程序产生的,中断属于异常的一种,中断是唯一与CPU运行无关的异常。中断硬件系统主要有三种器件,各个外设、中断控制器和CPU。1.1.中断控制器Interrupt Controller是连接外设中断系统和CPU系统的桥梁。根据外设irq request line的多少,Interrupt Controll...原创 2019-03-26 16:57:23 · 1655 阅读 · 0 评论