- 博客(5)
- 收藏
- 关注
原创 Linux中断(interrupt)子系统之四:驱动程序接口层 & 中断通用逻辑层
在本系列文章的第一篇:Linux中断(interrupt)子系统之一:中断系统基本原理,我把通用中断子系统分为了4个层次,其中的驱动程序接口层和中断通用逻辑层的界限实际上不是很明确,因为中断通用逻辑层的很多接口,既可以被驱动程序使用,也可以被硬件封装层使用,所以我把这两部分的内容放在一起进行讨论。本章我将会讨论这两层对外提供的标准接口和内部实现机制,几乎所有的接口都是围绕着irq_desc和i
2012-04-27 00:20:16 23378 7
原创 Linux中断(interrupt)子系统之三:中断流控处理层
1. 中断流控层简介早期的内核版本中,几乎所有的中断都是由__do_IRQ函数进行处理,但是,因为各种中断请求的电气特性会有所不同,又或者中断控制器的特性也不同,这会导致以下这些处理也会有所不同:何时对中断控制器发出ack回应;mask_irq和unmask_irq的处理;中断控制器是否需要eoi回应?何时打开cpu的本地irq中断?以便允许irq的嵌套;中断数据结构的同步和保护
2012-04-24 17:20:15 25847 15
原创 Android Audio System线性音量和对数音量的转换
Android的音频系统的代码中,应用程序对每个音频流的音量做出调整后,最终会转换为一个系数K,所有的音频数据在输出到硬件之前,都要乘以系数K,只要应用程序发出调整音量的调用,中间层的Audio System就会重新计算系数K的值。对应用程序来说,音量控制通常都是按照线性进行调整的,比如对于具有15级音量的音频流来说,我们预期每级的音量变化都是相当的,也就是说:从第5级调到第6级,和从第7级调到第
2012-04-19 20:18:45 19439 2
原创 Linux中断(interrupt)子系统之二:arch相关的硬件封装层
Linux的通用中断子系统的一个设计原则就是把底层的硬件实现尽可能地隐藏起来,使得驱动程序的开发人员不用关注底层的实现,要实现这个目标,内核的开发者们必须把硬件相关的内容剥离出来,然后定义一些列标准的接口供上层访问,上层的开发人员只要知道这些接口即可完成对中断的进一步处理和控制。对底层的封装主要包括两部分:实现不同体系结构中断入口,这部分代码通常用asm实现;中断控制器进行封装和实现;
2012-04-18 23:16:07 25081 8
原创 Linux中断(interrupt)子系统之一:中断系统基本原理
这个中断系列文章主要针对移动设备中的Linux进行讨论,文中的例子基本都是基于ARM这一体系架构,其他架构的原理其实也差不多,区别只是其中的硬件抽象层。内核版本基于3.3。虽然内核的版本不断地提升,不过自从上一次变更到当前的通用中断子系统后,大的框架性的东西并没有太大的改变。 /********************************************************
2012-04-12 21:52:48 65685 23
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人