
linux内核
「已注销」
这个作者很懒,什么都没留下…
展开
-
Linux中断(interrupt)子系统之三:中断流控处理层
1. 中断流控层简介 早期的内核版本中,几乎所有的中断都是由__do_IRQ函数进行处理,但是,因为各种中断请求的电气特性会有所不同,又或者中断控制器的特性也不同,这会导致以下这些处理也会有所不同: 何时对中断控制器发出ack回应;mask_irq和unmask_irq的处理;中断控制器是否需要eoi回应?何时打开cpu的本地irq中断?以便允许irq的嵌套;中断数据结构的同步和保护转载 2014-10-29 22:39:32 · 585 阅读 · 0 评论 -
Linux中断(interrupt)子系统之二:arch相关的硬件封装层
Linux的通用中断子系统的一个设计原则就是把底层的硬件实现尽可能地隐藏起来,使得驱动程序的开发人员不用关注底层的实现,要实现这个目标,内核的开发者们必须把硬件相关的内容剥离出来,然后定义一些列标准的接口供上层访问,上层的开发人员只要知道这些接口即可完成对中断的进一步处理和控制。对底层的封装主要包括两部分: 实现不同体系结构中断入口,这部分代码通常用asm实现;中断控制器进行封装和实现;转载 2014-10-29 22:39:07 · 709 阅读 · 0 评论 -
修改Linux内核的启动Logo和禁用启动光标
Linux内核下使用的图片文件类型是pnm和PPm格式的,所以在开始介绍修改linux内核启动LOGO之前, 1,先需要介绍一下怎么样设计自己开始logo的ppm图片,首先选择一张png格式的图片 使用如下命令确保你必须安装以下的工具(pngtopnm,pnmquant,pnmtoplainpnm) 如果没有安装,你可以使用sudo get-apt install netpbm命令来安装转载 2014-10-29 19:41:07 · 772 阅读 · 0 评论 -
Linux中断(interrupt)子系统之五:软件中断(softIRQ)
软件中断(softIRQ)是内核提供的一种延迟执行机制,它完全由软件触发,虽然说是延迟机制,实际上,在大多数情况下,它与普通进程相比,能得到更快的响应时间。软中断也是其他一些内核机制的基础,比如tasklet,高分辨率timer等。 /*******************************************************************************转载 2014-10-29 22:42:15 · 559 阅读 · 0 评论 -
Linux中断(interrupt)子系统之四:驱动程序接口层 & 中断通用逻辑层
在本系列文章的第一篇:Linux中断(interrupt)子系统之一:中断系统基本原理,我把通用中断子系统分为了4个层次,其中的驱动程序接口层和中断通用逻辑层的界限实际上不是很明确,因为中断通用逻辑层的很多接口,既可以被驱动程序使用,也可以被硬件封装层使用,所以我把这两部分的内容放在一起进行讨论。 本章我将会讨论这两层对外提供的标准接口和内部实现机制,几乎所有的接口都是围绕着irq_desc转载 2014-10-29 22:40:50 · 631 阅读 · 0 评论 -
linux内核调试技巧之一 dump_stack
在内核中代码调用过程难以跟踪,上下文关系复杂,确实让人头痛 调用dump_stack()就会打印当前cpu的堆栈的调用函数了。 如此,一目了然的就能看到当前上下文环境,调用关系了 假设: 遇到uvc_probe_video这么一个函数,不知道它最终是被谁调用到的,根据linux设备模型,初步推测,probe应该是设备适配驱动时总线轮训到的。 也只能是猜测,也根本无转载 2015-10-23 17:57:14 · 798 阅读 · 0 评论