android下调试声卡驱动之概述
在Android中音频系统使用的是ALSA系统架构。ASoC--ALSA System on Chip 。是建立在标准ALSA驱动层上,为了更好地支持
嵌入式处理器和移动设备中的音频Codec的一套软件体系。在音频设备驱动中ASoC被分为Machine、Platform和Codec三大部分。
Codec部分:负责音频解码,这部分代码全然无平台无关(设备原厂提供),它包括了一些音频的控件(Controls),音频接
口,DAMP(动态音频电源管理)的定义和Codec IO功能。为了保证硬件无关性,不论什么特定于平台的代码都要移
到Platform和Machine驱动中。
Platform部分:包括了平台的音频DMA和音频接口的配置和控制(I2S,PCM。AC97等);与处理器芯片相关的代码。
Machine部分:是耦合Platform和Codec驱动,同一时候与上层交互的代码。因为上层是标准的alsa架构。所下面层接口肯定要做了
统一,这部分由Machine本身的Platform驱动和Platform设备组成(请跟上面的Platform驱动差别开)。Platform驱动
内核已经完毕了,所以无须过多的关心怎么跟上层ALSA怎么衍接的问题。我们仅仅须要注冊一个Machine的Platform
设备以及完毕Platform和Codec耦合。
1、ALSA设备文件结构
controlC0 用于声卡的控制,比如通道选择,混音,麦克风的控制等;
pcmC0D0c 用于录音的pcm设备;
pcmC0D0p 用于播放的pcm设备;
timer 定时器。
当中,C0D0代表的是声卡0中的设备0。pcmC0D0c最后一个c代表capture,pcmC0D0p最后一个p代表playback。这些都是
alsa-driver中的命名规则。
2、ALSA文件文件夹结构概述
sound/core:该文件夹包括了中间层。ALSA的核心驱动。那些本地ALSA模块保持在这个文件夹里。一些子文件夹包括那些与内核配置
相关的不同的模块。
sound/core/oss :关于PCM和mixer的OSS模拟的模块保存在这个文件夹里面。
sound/core/seq :有关音序器相关的代码。
kernel /include/sound :ALSA驱动的公共头文件文件夹,该文件夹的头文件须要导出给用户空间的应用程序使用。通常驱动模块私
有的头文件不应放置在这里。
sound/drivers :该文件夹包括了在不同架构的系统中的不同驱动共享的文件部分。与CPU、BUS架构无关的公用代码。
sound/i2c :该文件夹包括了ALSA自己的I2C控制代码。
尽管Linux有个i2c的标准协议层。ALSA还是拥有它关于一些card的专用
i2c代码。由于一些声卡只须要一些简单的操作,而标准的i2c的API函数对此显得太过复杂了。
sound/pci :该文件夹文件负责PCI声卡和一些PCI BUS的上层card模块。在pci文件夹以下保存着一些简单的驱动文件,而一些比較
复杂的,同一时候包括多个程序文件的驱动会被放置在pci文件夹以下一个单独的子文件夹里面(如:emu10k1,ice1712)。
sound/isa 该文件夹文件是处理ISA声卡的上层card模块。
sound/arm。sound/ppc。和sound/sparc 这里文件夹放置一些和芯片架构相关的一些上层的card模块。
sound/usb 该文件夹包括一些USB-AUDIO驱动。
sound/pcmcia PCCard驱动会放到这里。
CardBus驱动将会放到pci文件夹里面,由于API函数和标准PCI卡上统一的。
sound/soc 针对system-on-chip体系的中间层代码。
sound/soc/codecs 针对soc体系的各种codec的代码,与平台无关。
android下调试声卡驱动之概述的更多相关文章
- linux下的声卡驱动架构
1.linux下的声卡驱动架构主要分为OSS架构和ALSA架构. 2.OSS架构 OSS全称是Open Sound System,叫做开放式音频系统,这种早期的音频系统这种基于文件系统的访问方式,这意 ...
- 第一章 Android系统移植与驱动开发概述
本书第一章首先简单概要地介绍了关于Android系统移植和驱动开发的相关内容. 所谓“移植”是指为特定的自己的设备,如手机定制Android的过程.自己开发一些程序(移植)装载在设备上,使得Andro ...
- 第一章Android系统移植与驱动开发概述--读书笔记
以前,初步学习过嵌入式Linux驱动开发的基础课程,对于驱动开发可以说是有了一点点微末的基础吧.首先我们要对Android嵌入式系统有一个初步的认识,Android系统发展到今天已经具备了完善的架构. ...
- (转)<Unity3D>Unity3D在android下调试
转自:http://blog.csdn.net/zuoyamin/article/details/11827309 一.工具准备 1.JDK——由于android是基于Java平台开发的,jdk是必须 ...
- 第一章:Android系统移植与驱动开发概述
Android是基于Linux内核的,与Linux内核没有太大的区别,只是增加了一些自己独有的驱动,随着Android发布版本的不断升级,他所使用的Linux内核也在不断升级,以适应新的安卓版本,为他 ...
- android下调试unity3d应用
原地址:http://blog.csdn.net/armoonwei/article/details/7032455 目前貌似不支持断点调试,但可以通过日志打印(logcat)来跟踪. 在androi ...
- AM335x(TQ335x)学习笔记——WM8960声卡驱动移植
经过一段时间的调试,终于调好了TQ335x的声卡驱动.TQ335x采用的Codec是WM8960,本文来总结下WM8960驱动在AM335x平台上的移植方法.Linux声卡驱动架构有OSS和ALSA两 ...
- Ubuntu杂记——Ubuntu下以USB方式连接Android手机调试
在Ubuntu下进行Android开发,发现自己的手机就算打开USB连接.USB调试还是连不上,一直都是显示??????.百度了很多,发现都是要改“ /etc/udev/rules.d/50-andr ...
- Ubuntu下声卡驱动解决方法alsa
一.首先介绍一下什么是ALSA : Advanced Linux Sound Architecture 的简称为 ALSA ,译成中文的意思是先进的Linux声音架构(这是google翻译的):一谈到 ...
随机推荐
- ZOJ 1654 二分匹配基础题
题意: 给你一副图, 有草地(*),空地(o)和墙(#),空地上可以放机器人, 机器人向上下左右4个方向开枪(枪不能穿墙),问你在所有机器人都不相互攻击的情况下能放的最多的机器人数. 思路:这是一类经 ...
- c++windows内核编程笔记day12 硬盘逻辑分区管理、文件管理、内存管理
windows系统磁盘文件存储: 分区格式:NTFS / FAT32 GetSystemDirectory();//获取系统路径 GetWindowsDirectory();//获取windows路径 ...
- keil提示:missing ';' before 'XXX'但又找不到是哪里少了分号——已解决!
今天写一个51程序,keil在编译时总提示丢失了一个分号,但怎么都找不到是哪里丢失了分号,搞了一下午才解决问题,现在把经验在此分享,以求让他人不要犯同样的错误!提示信息为: LCD12864.H(20 ...
- java自己主动打开包装盒很容易导致两个误区
从J2SE 5.0开始提供基本数据类型的自己主动装箱(autoboxing).拆箱(unboxing)功能. 何为自己主动装箱: 当我们创建一个Integer对象时,却能够这样: Integer i ...
- jQuery 复制节点的元素实现加入到购物车功能
描写叙述: 用户点击左边div中的商品,相应商品会自己主动加入到右面的div中,类似电子商城中的加入到购物车功能. 主要用到了jquery中的复制节点功能,基本原理是首先获取点击的元素,然后将对应信息 ...
- C# 计算字符串/文件的哈希值(MD5、SHA)
原文 C# 计算字符串的哈希值(MD5.SHA) 已做修改 一.关于本文 本文中是一个类库,包括下面几个函数: /// 1)计算32位MD5码(大小写):Hash_MD5_32 /// 2)计算16位 ...
- Spring3.0官网文档学习笔记(七)--3.4.2
3.4.2 依赖与配置的细节 3.4.2.1 Straight values (primitives, Strings, and so on) JavaBeans PropertyE ...
- 如何解决This system is not registered with RHN.
今天我必须写下这篇文章,由于在我刚刚接触到Linux下安装oracle时碰到了Linux中少xscreensaver.rpm包自己弄了非常久.最后还是被一个大哥帮我攻克了:仅仅能说非常的感谢你! 我试 ...
- Spring实战笔记2---Bean的装配
创建应用对象之间协作关系的行为通常成为装配,该篇的主要内容有两个,一个Spring装配Bean的几种方式以及Spring表达式,事实上这两者是分不开的,在Spring中,对象无需自己负责查找或者创建与 ...
- CMS垃圾回收机制
详解CMS垃圾回收机制 原创不易,未经允许,不得转载~~~ 什么是CMS? Concurrent Mark Sweep. 看名字就知道,CMS是一款并发.使用标记-清除算法的gc. CMS是针对老 ...