背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本:4.14 ARM64处理器,Contex-A53,双核 使用工具:Source Insight 3. ...
分类:
系统相关 时间:
2020-06-24 00:18:13
阅读次数:
104
背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本:4.14 ARM64处理器,Contex-A53,双核 使用工具:Source Insight 3. ...
分类:
系统相关 时间:
2020-05-31 12:38:36
阅读次数:
126
一、前言 一个合格的linux驱动工程师需要对kernel中的中断子系统有深刻的理解,只有这样,在写具体driver的时候才能: 1、正确的使用linux kernel提供的的API,例如最著名的request_threaded_irq(request_irq)接口 2、正确使用同步机制保护驱动代码 ...
分类:
系统相关 时间:
2018-02-13 22:15:41
阅读次数:
235
一、前言 本文主要的议题是作为一个普通的驱动工程师,在撰写自己负责的驱动的时候,如何向Linux Kernel中的中断子系统注册中断处理函数?为了理解注册中断的接口,必须了解一些中断线程化(threaded interrupt handler)的基础知识,这些在第二章描述。第三章主要描述了驱动申请 ...
一、前言本文主要围绕IRQ number和中断描述符(interrupt descriptor)这两个概念描述通用中断处理过程。第二章主要描述基本概念,包括什么是IRQ number,什么是中断描述符等。第三章描述中断描述符数据结构的各个成员。第四章描述了初始化中断描述符相关的接口API。第五章描述... ...
分类:
系统相关 时间:
2017-09-27 00:49:36
阅读次数:
331
一、概述在linux kernel中,我们使用下面两个ID来标识一个来自外设的中断:1、IRQ number。CPU需要为每一个外设中断编号,我们称之IRQ Number。这个IRQ number是一个虚拟的interrupt ID,和硬件无关,仅仅是被CPU用来标识一个外设中断。2、HW inte... ...
分类:
系统相关 时间:
2017-09-27 00:49:03
阅读次数:
243
一、前言本文主要以ARM体系结构下的中断处理为例,讲述整个中断处理过程中的硬件行为和软件动作。具体整个处理过程分成三个步骤来描述:1、第二章描述了中断处理的准备过程2、第三章描述了当发生中的时候,ARM硬件的行为3、第四章描述了ARM的中断进入过程4、第五章描述了ARM的中断退出过程本文涉及的代码来... ...
分类:
系统相关 时间:
2017-09-27 00:48:11
阅读次数:
306
一、前言对于中断处理而言,linux将其分成了两个部分,一个叫做中断handler(top half),是全程关闭中断的,另外一部分是deferable task(bottom half),属于不那么紧急需要处理的事情。在执行bottom half的时候,是开中断的。有多种bottom half的机... ...
分类:
系统相关 时间:
2017-09-27 00:44:17
阅读次数:
263
一、前言GIC(Generic Interrupt Controller)是ARM公司提供的一个通用的中断控制器,其architecture specification目前有四个版本,V1~V4(V2最多支持8个ARM core,V3/V4支持更多的ARM core,主要用于ARM64服务器系统结构... ...
分类:
系统相关 时间:
2017-09-27 00:42:55
阅读次数:
281
一、前言一个合格的linux驱动工程师需要对kernel中的中断子系统有深刻的理解,只有这样,在写具体driver的时候才能:1、正确的使用linux kernel提供的的API,例如最著名的request_threaded_irq(request_irq)接口2、正确使用同步机制保护驱动代码中的临... ...
分类:
系统相关 时间:
2017-09-27 00:40:09
阅读次数:
212