linux驱动
文章平均质量分 88
鹤冲云霄
重剑无锋,大巧不工
展开
-
block IO层框架分析1
1. 相应的结构体struct gendisk { /* major, first_minor and minors are input parameters only, * don't use directly. Use disk_devt() and disk_max_parts(). */ int major; /* major number of driver */原创 2015-06-14 18:50:05 · 1571 阅读 · 0 评论 -
Linux ALSA声卡驱动之八:ASoC架构中的Platform
本文转载自http://blog.csdn.net/droidphone1. Platform驱动在ASoC中的作用前面几章内容已经说过,ASoC被分为Machine,Platform和Codec三大部件,Platform驱动的主要作用是完成音频数据的管理,最终通过CPU的数字音频接口(DAI)把音频数据传送给Codec进行处理,最终由Codec输出驱动耳机或者是喇叭的音信信转载 2015-06-23 14:07:38 · 515 阅读 · 0 评论 -
Linux ALSA声卡驱动之四:Control设备的创建
本文转载自http://blog.csdn.net/droidphoneControl接口Control接口主要让用户空间的应用程序(alsa-lib)可以访问和控制音频codec芯片中的多路开关,滑动控件等。对于Mixer(混音)来说,Control接口显得尤为重要,从ALSA 0.9.x版本开始,所有的mixer工作都是通过control接口的API来实现的。转载 2015-06-23 14:01:53 · 352 阅读 · 0 评论 -
Linux ALSA声卡驱动之五:移动设备中的ALSA(ASoC)
本文转载自http://blog.csdn.net/droidphone1. ASoC的由来ASoC--ALSA System on Chip ,是建立在标准ALSA驱动层上,为了更好地支持嵌入式处理器和移动设备中的音频Codec的一套软件体系。在ASoc出现之前,内核对于SoC中的音频已经有部分的支持,不过会有一些局限性: Codec驱动与SoC CPU的底转载 2015-06-23 14:03:50 · 407 阅读 · 0 评论 -
Linux ALSA声卡驱动之一:ALSA架构简介
一. 概述 ALSA是Advanced Linux Sound Architecture 的缩写,目前已经成为了linux的主流音频体系结构,想了解更多的关于ALSA的这一开源项目的信息和知识,请查看以下网址:http://www.alsa-project.org/。 在内核设备驱动层,ALSA提供了alsa-driver,同时在应用层,ALSA为我们提供了alsa-转载 2015-06-23 13:54:00 · 320 阅读 · 0 评论 -
Linux ALSA声卡驱动之二:声卡的创建
本文转载自http://blog.csdn.net/droidphone1. struct snd_card 1.1. snd_card是什么snd_card可以说是整个ALSA音频驱动最顶层的一个结构,整个声卡的软件逻辑结构开始于该结构,几乎所有与声音相关的逻辑设备都是在snd_card的管理之下,声卡驱动的第一个动作通常就是创建一个snd_card结构体转载 2015-06-23 13:56:59 · 362 阅读 · 0 评论 -
Linux ALSA声卡驱动之六:ASoC架构中的Machine
本文转载自http://blog.csdn.net/droidphone前面一节的内容我们提到,ASoC被分为Machine、Platform和Codec三大部分,其中的Machine驱动负责Platform和Codec之间的耦合以及部分和设备或板子特定的代码,再次引用上一节的内容:Machine驱动负责处理机器特有的一些控件和音频事件(例如,当播放音频时,需要先行打开一个放大器);单转载 2015-06-23 14:05:11 · 425 阅读 · 0 评论 -
ALSA声卡驱动中的DAPM详解之七:dapm事件机制(dapm event)
本文转载自http://blog.csdn.net/droidphone前面的六篇文章,我们已经讨论了dapm关于动态电源管理的有关知识,包括widget的创建和初始化,widget之间的连接以及widget的上下电顺序等等。本章我们准备讨论dapm框架中的另一个机制:事件机制。通过dapm事件机制,widget可以对它所关心的dapm事件做出反应,这种机制对于扩充widget的能力非转载 2015-06-23 14:16:04 · 530 阅读 · 0 评论 -
ALSA声卡驱动中的DAPM详解之二:widget-具备路径和电源管理信息的kcontrol
本文转载自http://blog.csdn.net/droidphone上一篇文章中,我们介绍了音频驱动中对基本控制单元的封装:kcontrol。利用kcontrol,我们可以完成对音频系统中的mixer,mux,音量控制,音效控制,以及各种开关量的控制,通过对各种kcontrol的控制,使得音频硬件能够按照我们预想的结果进行工作。同时我们可以看到,kcontrol还是有以下几点不足:转载 2015-06-23 14:10:26 · 506 阅读 · 0 评论 -
input驱动框架
1. input框架介绍:linux input子系统主要原创 2015-06-13 10:25:43 · 912 阅读 · 0 评论 -
LCD设备驱动分析
1. LCD设备驱动相关的数据结构原创 2015-06-11 23:38:08 · 465 阅读 · 0 评论 -
I2C驱动框架
1. I2C驱动框架I2C设备驱动的层次分为设备层、总线原创 2015-06-10 23:21:08 · 674 阅读 · 0 评论 -
看门狗驱动程序
1. 看门狗的框架介绍看门狗是以misc设备的模式注册到设备中的,没有像其它设备那样复杂struct miscdevice { int minor; //此设备号 const char *name; //混杂设备名字 const struct file_operations *fops; //设备原创 2015-06-10 22:53:18 · 619 阅读 · 0 评论 -
rtc驱动框架分析
本驱动框架的代码以linux 3.1.0为主1. rtc的启动代码分析subsys_initcall(rtc_init),说明rtc框架的初始化是在initcall4来调用的。rtc_init:class_create,创建一个类rtc_dev_init,创建字符设备rtc_sysfs_init,创建sysfs相关的文件。module_init(s3c_rtc_in原创 2015-06-09 23:20:42 · 986 阅读 · 0 评论 -
pci驱动框架
1. 先来看下数据结构struct pci_bus { //根总线链接到全局根总线链表,非根总线,链接到父总线的总线链表中 struct list_head node; /* node in list of buses */ //pci总线的父总线 struct pci_bus *parent; /* parent bus this bridge is on */ //这条pci原创 2015-06-14 16:06:55 · 1027 阅读 · 0 评论 -
触摸屏驱动分析
触摸屏是作为input dev注册到系统中的。原创 2015-06-13 12:30:07 · 442 阅读 · 0 评论 -
spi驱动框架分析
1. spi驱动框架分析spi的驱动原创 2015-06-13 13:40:58 · 842 阅读 · 0 评论 -
atheros无线网卡数据包接收流程
本文主要分析atheros无线网卡数据包接收的流程,主要分析函数调用框架以atheros的UMAC_SUPPORT_APONLY编译选项的开和关两种模式来分析1. APONLY模式情况下:从中断开始:ath_isrdo_ath_israth_isr_aponlyath_intr_aponlyath_原创 2015-08-03 23:03:50 · 3195 阅读 · 0 评论 -
ALSA声卡驱动中的DAPM详解之一:kcontrol
本文转载自http://blog.csdn.net/droidphoneDAPM是Dynamic Audio Power Management的缩写,直译过来就是动态音频电源管理的意思,DAPM是为了使基于linux的移动设备上的音频子系统,在任何时候都工作在最小功耗状态下。DAPM对用户空间的应用程序来说是透明的,所有与电源相关的开关都在ASoc core中完成。用户空间的应用程序无转载 2015-06-23 14:09:12 · 599 阅读 · 0 评论 -
ALSA声卡驱动中的DAPM详解之三:如何定义各种widget
本文转载自http://blog.csdn.net/droidphone上一节中,介绍了DAPM框架中几个重要的数据结构:snd_soc_dapm_widget,snd_soc_dapm_path,snd_soc_dapm_route。其中snd_soc_dapm_path无需我们自己定义,它会在注册snd_soc_dapm_route时动态地生成,但是对于系统中的widget和rou转载 2015-06-23 14:11:41 · 565 阅读 · 0 评论 -
block IO层框架分析2
1. 内核层文件读写的函数调用关系sys _readvfs_readdo_sync_readf_op->aio_readgeneric_file_aio_readdo_generic_file_readmpage_readpag原创 2015-06-16 22:12:39 · 2237 阅读 · 1 评论 -
block IO层框架分析3
1. 在block IO层框架分析2中,我们看到request请求会被提交到IO调度系统中,elv_merge判断bio是否可以被合并到request。在准备好request后,linux块层调用add_request添加request,该函数直接以ELEVATOR_INSERT_SORT为参数直接调用__elv_add_request。在blk_peek_request函数中,调用__e原创 2015-06-17 09:39:11 · 1770 阅读 · 0 评论 -
SCSI驱动框架分析
1. 先来看下SCSI相关的数据结构,主要有scsi_host_template,scsi_host,scsi_target,scsi_device,如果是scsi disk,则又有一个scsi_disk结构。原创 2015-06-17 09:49:28 · 9588 阅读 · 2 评论 -
USB驱动框架分析1
本文主要分析usb框架的主要数据结构,usb驱动框架的初始化,usb系统模型的建立过程原创 2015-06-17 10:09:29 · 3147 阅读 · 0 评论 -
USB驱动框架分析2
本文分析usb主机驱动控制器驱动,设备描述符的获取和设置原创 2015-06-17 10:11:21 · 873 阅读 · 0 评论 -
usb storage驱动分析
本文以usb storage设备驱动来分析原创 2015-06-17 10:13:02 · 10229 阅读 · 0 评论 -
USB驱动框架分析3
本文主要分析hub的驱动原创 2015-06-17 10:12:23 · 1924 阅读 · 0 评论 -
mtd驱动框架分析
mtd驱动框架分为mtd block层,mtd raw层,具体的设备驱动。原创 2015-06-17 10:14:45 · 2597 阅读 · 0 评论 -
mmc驱动框架分析1
mmc驱动框架分为core层,host层和card层。原创 2015-06-17 10:15:26 · 1323 阅读 · 0 评论 -
tty驱动框架分析
tty代表一类设备原创 2015-06-17 10:31:14 · 1367 阅读 · 0 评论 -
mmc驱动框架分析2
mmc驱动框架分析1中,分析了sd卡的初始化流程,本文主要分析sd卡的读写过程。先贴一张图,网上网友画的,非常清晰,表示感谢。原创 2015-06-22 22:52:08 · 1673 阅读 · 0 评论 -
serial 终端设备驱动分析
本文原创 2015-06-23 09:11:19 · 1921 阅读 · 0 评论 -
ALSA声卡驱动中的DAPM详解之五:建立widget之间的连接关系
本文转载自http://blog.csdn.net/droidphone前面我们主要着重于codec、platform、machine驱动程序中如何使用和建立dapm所需要的widget,route,这些是音频驱动开发人员必须要了解的内容,经过前几章的介绍,我们应该知道如何在alsa音频驱动的3大部分(codec、platform、machine)中,按照所使用的音频硬件结构,定义出相转载 2015-06-23 14:13:42 · 492 阅读 · 0 评论 -
Linux ALSA声卡驱动之七:ASoC架构中的Codec
本文转载自http://blog.csdn.net/droidphone1. Codec简介在移动设备中,Codec的作用可以归结为4种,分别是:对PCM等信号进行D/A转换,把数字的音频信号转换为模拟信号对Mic、Linein或者其他输入源的模拟信号进行A/D转换,把模拟的声音信号转变CPU能够处理的数字信号对音频通路进行控制,比如播放音乐,收听调频收音转载 2015-06-23 14:06:58 · 380 阅读 · 0 评论 -
Linux ALSA声卡驱动之三:PCM设备的创建
本文转载自http://blog.csdn.net/droidphone1. PCM是什么PCM是英文Pulse-code modulation的缩写,中文译名是脉冲编码调制。我们知道在现实生活中,人耳听到的声音是模拟信号,PCM就是要把声音从模拟转换成数字信号的一种技术,他的原理简单地说就是利用一个固定的频率对模拟信号进行采样,采样后的信号在波形上看就像一串连续的幅值转载 2015-06-23 14:00:05 · 387 阅读 · 0 评论 -
ALSA声卡驱动中的DAPM详解之四:在驱动程序中初始化并注册widget和route
本文转载自http://blog.csdn.net/droidphone前几篇文章我们从dapm的数据结构入手,了解了代表音频控件的widget,代表连接路径的route以及用于连接两个widget的path。之前都是一些概念的讲解以及对数据结构中各个字段的说明,从本章开始,我们要从代码入手,分析dapm的详细工作原理:如何注册widget如何连接两个widget一个w转载 2015-06-23 14:12:53 · 520 阅读 · 0 评论 -
ALSA声卡驱动中的DAPM详解之六:精髓所在,牵一发而动全身
本文转载自http://blog.csdn.net/droidphone设计dapm的主要目的之一,就是希望声卡上的各种部件的电源按需分配,需要的就上电,不需要的就下电,使得整个音频系统总是处于最小的耗电状态,最主要的就是,这一切对用户空间的应用程序是透明的,也就是说,用户空间的应用程序无需关心那个部件何时需要电源,它只要按需要设定好音频路径,播放音频数据,暂停或停止,dapm框架会根转载 2015-06-23 14:14:56 · 880 阅读 · 0 评论 -
atheros无线驱动初始化流程
本文主要是描述pci接口的atheros无线驱动的初始化流程先贴一张网上找来的图片,atheros的驱动是分层的从下到上的每一层为:HAL:Hardware Abstraction LayerLMAC: Lower MACUMAC: Upper MACOSIF: OS Interface Layer。1. atheros的主要数据结构:struc原创 2015-08-03 22:05:21 · 3030 阅读 · 0 评论