文档库 最新最全的文档下载
当前位置:文档库 › imx_android_音频驱动

imx_android_音频驱动

imx_android_音频驱动
imx_android_音频驱动

IMX android driver –Audio

1. 音频设备的注册

这就是设备的注册了,设备本身非常简单,复杂的是这个设备的drvdata,drvdata里面包含了两部分,一部分是codec相关的,另一部分是平台相关的。基本上这里就可以看出整个音频驱动的架构特点,就是从alsa层进入——>内核alsa层接口->core层,这里再调用上面说的三个方面的函数来处理,先是cpu级别的,再是platform的,再是codec级别的,这几层做完了,工作也就做得差不多了。

2. 音频驱动的注册

2.1 Probe函数的调用

前面讲了设备的注册,里面的设备的名字就是”soc-audio”,而这里的driver的注册时名字也是” soc-audio”,对于platform的设备匹配的原则是根据名字的,所以将会匹配成功,成功后就会执行audio驱动提供的probe函数soc_probe;

2.2soc_probe的调用

这个函数主要用来获取设备结构体struct snd_soc_device. 然后执行这个结构体里面的一些成员的probe()函数来挂载驱动程序。

其中最重要的函数要数snd_soc_instantiate_card(),用来实例化一个声卡

1)Platform的遍历与匹配首先遍历platform list 链表

snd_soc_register_platform目标是注册一个soc_platform结构到platform_list链表中供后文使用,这里对应的平台是imx_soc_platform.. snd_soc_register_platform完成的工作主要是将s3c24xx_soc_platform加入到platform_list,同时重新扫描card链,看是否有卡兼容当前soc_platform

card->platform实际上就是imx_bbg_snd_devdata中的snd_soc_card_imx_bbg指向的platform。.

从上面的结构不难看出card->platform=&imx_soc_platform,与之前注册的一致,found=1,

跳出搜索,反之如果没有找到匹配的目标,表示platform还尚未注册进来,一直等到platform 注册再次调用instantial_card来实现平台的匹配。

2)Cpu_dai的匹配

整个dai匹配的过程与platform的匹配过程相似, 这里的card->dai_link 指的是imx_bbg_dai,其中cpu_dai为imx_ssi_dai

在imx_ssi_dev_probe 函数中进行了cpu_dai的注册

注册的ssi接口参数,请看imx_ssi_dai[channel].

和snd_soc_register_platform一样,snd_soc_register_dai同样调用了snd_soc_instantiate_cards()来重新实例化card.

struct snd_soc_dai *codec_dai;和struct snd_soc_dai *cpu_dai;分别指向了不同的cpu和codec的音频接口

这里的cpu dai是imx_ssi_dai[channel], codec dai为wm8731 dai

3)codec_dai的匹配

Codec dai的匹配过程和cpu dai的匹配类似

Codec dai的注册是在wm8731_register函数里完成的

4)instantiating 声卡

各个probe函数

Imx_ssi_probe:

Wm8731_probe :

soc_new_pcm是建立cpu与codec的dai接口的核心.

注:

struct snd_pcm结构中的struct snd_pcm_str streams[2]分别用于playback和capture

imx_bbg_wm8731_init :

Android驱动开发实例(控制LED灯)(精)

Android驱动例子(LED灯控制) 本例子,讲述在Android2.1上完全自已开发一个驱动去控制硬件口并写应用测试该驱动,通过这样一个例子,解析android下的驱动开发流程的应用调用流程,可以说是很好的入门引导 要达到的效果:通过Android的应用,调用驱动程序,在开发板上控制4个LED的亮灭。 一、硬件原理 如上图,通过4个IO口控制这LED,低电平LED亮, 这4个IO口分别是GPM1, GPM2, GPM3, GPM4, 二、驱动程序 1、在kernel文件夹下的driver目录,新键驱动文件夹 # cd kernel_Android_2.6.28.6/drivers 进到开发板的kernel目录,建驱动文件夹 #mkdir ledtest

2、在/driver/ledtest目录下,新建leddriver.c ,leddriver.h , Kconfig, Makefile 等4个文件leddriver.c leddriver.c 1. #include 2. #include 3. #include 4. #include/* For __init/__exit/... */ 5. #include 6. #include 7. #include 8. #include 9. #include 10. #include 11. #include 12. #include 13. #include 14. #include 15. #include 16. #include 17. #include//for register_chrdev( 18. #include 19. #include 20. #include"leddriver.h" 21. #include/* For MODULE_ALIAS_MISCDEV 22. (WATCHDOG_MINOR */ 23. #include/* For the watchdog specific items */ 24. #include/* For file operations */ 25. #define Viberator_MAJOR 97 //?÷éè±?o? 26. #define SCULL_NR_DEVS 4 27. #define SCULL_QUANTUM 4000 28. #define SCULL_QSET 1000 29. //---do as the GIO driver

虚拟声卡驱动程序VirtualAudioCable使用方法

一:安装软件 点击 选择是(Y) 选择I accept 选择Install 安装成功,点击“确定”按钮即完成安装。 二、软件的设置 点击桌面开始按钮所有程序---Virtual Audio Cable —Control panel 进入软件初始化 设置。 在Cables 中选择1(即首次设置一个虚拟通道),点击旁边的Set 按钮生成通道Cable1. 在参数设置区将Line 、Mic (可选可不选)、S/PDIF (可选可不选)三个选项后面的方框打钩,选中之后点击参数设置区内的设置按钮Set ,即完成了,对虚拟声卡通道1 的设置。 鼠标右键点击桌面右下角的喇叭------ 调整音频属性---- < 或者点击开始—控制面板--- 声音、 语音和音频设备--- 声音和音频设备>弹出: 选择语音 此时语音部分的设置为原系统默认的设备,保持不变。 选择音频: 改变声音播放、录音的选项内容:

如上图将声音播放、录音的默认设备全部改为Virtual Cable 1 。点击应用--- 确定即可。 三、打开录音机录音--- 录制电脑里播放出来的音频(不包含麦克风 里的声音) - 即“内录” 开始--- 所有程序—附件--- 娱乐--- 录音机 点击确定即可开始录音(注:此时可在电脑中打开相应的音频文件,开始录音) 此时音频波段显示有声音输入,但是电脑的耳机听不到正在播放的音频文件(属正常现象)。若想同时听到音频文件的内容点击桌面开始按钮所有程序---Virtual Audio Cable —Audio Repeater 。 修改为 点击Start 即可听到正在录制的音频文件。此时的录音即是通过虚拟声卡通道录制电脑里的声音的。 四、同时录电脑里播放的声音和麦克风收集的外部声音----- 即混录 <通过这种方法解决现有笔记本无“立体声混音”或“波形音”选项的问题> 在《三打开录音机录音--- 录制电脑里播放出来的音频(不包含麦克风里的声音)------------ 即“内录”》的同时,在打开一个irtual Audio Cable —Audio Repeater 窗口将其设置为: 即将外部麦克风收集的声音转移到虚拟声卡通道Cable1 中,同电脑里播放的声音一起被录音软件收录为音频文件。

音频系统方案说明(新)

1.1.1音频系统 1.1.1.1需求分析 指挥中心是进行处突指挥工作的核心场所,其音频系统主要负责首长指挥、会议发言及扩声系统建设。保证指挥中心拥有均匀的声场覆盖。 指挥中心长约14.8米、宽约13.3米,房间高度约6米。需要容纳大约88人,整个指挥中心的房高比较高,要求会议中心的扩声可以均匀的覆盖整个房间。具有音视频播放功能的设备,在控制席位要配有监听音箱,以便操控人员进行双向通信。 具体建设内容如下: a)指挥中心安装一套音响设备; b)指挥中心配备一套32席会议系统; c)指挥中心配备2支无线手持话筒; d)控制室配备一台32路数字调音台、1对监听音箱、1个监听耳机; e)控制室配备一台蓝光DVD。 1.1.1.2系统设计 配置了32支发言单元,满足整个指挥中心大厅音频系统不同发言需求。在控制室控制席位配置了监听音箱,方便与会领导人员很好监听到整个指挥大厅会议实况。系统配置了音视频播放设备,满足指挥大厅音视频播放功能。 系统主扩声采用左右扩声的方式,参谋作业区采用吸顶音箱,确保整个指挥中心达到均匀的扩声效果。

1.1.1.3系统结构图 图错误!文档中没有指定样式的文字。-1音频系统连接图

1.1.1.4音箱布局图 图错误!文档中没有指定样式的文字。-2音箱布局图

1.1.1.5设计原则 a)可靠性。 系统应具备长期稳定工作的能力,所有选用设备均符合我国或国际上的质量及可靠性标准。 b)实用性。 系统应具备完成工程所要求功能的能力和水准,符合本工程实际需要和国内外有关规范的要求,并且实现容易,操作方便。 c)先进性。 系统是在满足可靠性和实用性要求前提下的最先进的系统。选用设备均选用国际、国内知名厂家近年来的最新产品或专利产品。 d)一致性。 系统应遵循开放系统的原则。 系统应依据技术指标的一致性、互换性选定设备,使系统具备良好的灵活性、兼容性、扩展性和可移植性。 e)经济性。 系统应满足性能与价格之比在同类系统和条件下达到最优,选择最佳性价比的设备。 系统以保证整个指挥大厅有良好的语言清晰度及均匀的声场分布,并且整个扩声系统能较好的解决背景声和人声兼容问题,使得声音更加逼真清晰为设计原则。 1.1.1.6设备安装 2支主扩声音箱安装在指挥中心大屏幕左右两侧,采用壁挂隐藏方式;6支吸顶音箱按图示位置安装在参谋作业区的上方,均采用隐藏方式安装;音箱安装时考虑与整体装修风格配合。 数字音频处理器安装在设备间机柜;调音台安装在控制室操作台上。具体安装高度待立面图确定后再次进行优化声场分析,确定合适位置。 1.1.1.7主要设备性能指标 1.1.1.7.1主扩音箱 1.1.1.8设备清单 表错误!文档中没有指定样式的文字。-1音频系统设备清单

android系统开发--HAL层开发基础

android系统开发--HAL层开发基础 Android HAL层,即硬件抽象层,是Google响应厂家“希望不公开源码”的要求推出的新概念 1,源代码和目标位置 源代码:/hardware/libhardware目录,该目录的目录结构如下: /hardware/libhardware/hardware.c编译成libhardware.so,目标位置为/system/lib目录 /hardware/libhardware/include/hardware目录下包含如下头文件: hardware.h 通用硬件模块头文件 copybit.h copybit模块头文件 gralloc.h gralloc模块头文件 lights.h 背光模块头文件 overlay.h overlay模块头文件 qemud.h qemud模块头文件 sensors.h 传感器模块头文件 /hardware/libhardware/modules目录下定义了很多硬件模块 这些硬件模块都编译成xxx.xxx.so,目标位置为/system/lib/hw目录 2,HAL层的实现方式 JNI->通用硬件模块->硬件模块->内核驱动接口 具体一点:JNI->libhardware.so->xxx.xxx.so->kernel 具体来说:android frameworks中JNI调用/hardware/libhardware/hardware.c中定义的hw_get_module函数来获取硬件模块, 然后调用硬件模块中的方法,硬件模块中的方法直接调用内核接口完成相关功能 3,通用硬件模块(libhardware.so) (1)头文件为:/hardware/libhardware/include/hardware/hardware.h 头文件中主要定义了通用硬件模块结构体hw_module_t,声明了JNI调用的接口函数 hw_get_module hw_module_t定义如下: typedef struct hw_module_t { /** tag must be initialized to HARDWARE_MODULE_TAG */ uint32_t tag; /** major version number for the module */ uint16_t version_major; /** minor version number of the module */ uint16_t version_minor; /** Identifier of module */ const char *id; /** Name of this module */ const char *name;

xp系统显示没有音频设备解决办法..

?天下午捣鼓了一下电脑。晚上的时候,发现没声音了。任务栏没有了小喇叭。我进控制面板一开。提示说是:Windows XP 系统中没有音频设备检 查驱动。没问题啊。肯定是哪里的设置有问题。 google一下。。 终于找到了。。。 以下是来自HP 网站的提示操作。很快的就找到了声音,娃哈哈。。。 适用范围 本文适用于安装了 Windows XP 操作系统的 HP 和 Compaq 台式电脑。 故障描述 电脑没有声音,当您从控制面板打开“声音和音频设备属性”窗口时,音频功能无法使用,屏幕上显示“没有音频设备”错误信息,如图 1 没有音频设备所示: 图 1: 没有音频设备

解决方法 请按照以下操作步骤,排除电脑的声音故障: 步骤一:启用 Windows 音频服务 安装与声音相关的软件或软件更新会禁用 Windows 音频服务。在某些情况下,Windows 音频服务可能无法自动重新启用。这可能是导致电脑没有声音的主要原因。按照以下步骤操作,检查故障原因。如果需要,请手动启用 Windows 音频服务: 1.点击“开始”,再点击“运行”。如图 2 运行所示: 图 2: 运行

2.在“打开”栏中输入:“services.msc”,最后点击“确定”按 钮。如图 3 运行所示: 图 3: 运行 3.在“服务”窗口中,右键点击“Windows Audio”,选择“属性”。 如图 4 Windows Audio 所示: 图 4: Windows Audio

4.在“Windows Audio 属性”窗口中,从“启动类型”下拉列表中 选择“自动”,然后点击“启动”按钮,启动音频服务。如图 5 启动类型所示: 图 5: 启动类型

8.1 Pioneer软件、设备驱动程序安装

8.1 Pioneer软件、设备驱动程序安装 8.1.1Pilot Pioneer软件简介 Pilot Pioneer是集成了多个网络进行同步测试的新一代无线网络测试及分析软件。Pilot Pioneer基于PC和Windows 8/7/XP平台,结合了鼎利公司长期无线网络优化的经验和最新的研究成果,除了具备完善的GSM、CDMA、EVDO、WCDMA、TD-SCDMA、LTE网络测试以及Scanner测试功能外,还支持数据后分析功能,如报表汇总,覆盖分析,干扰分析等。 8.1.2软件安装 1.电脑推荐配置 (1)硬件配置 CPU:Intel(R) Core(TM) i5;内存:2.00GB;显卡:SVGA,16位彩色以上显示模式;显示分辨率:1366*768;硬盘空间:100GB或以上;USB口数量:4个。 (2)操作系统 Windows 8(64/32位)/ Windows 7(64/32位)/ Windows XP(要求SP2或以上)。 2.安装步骤 (1)安装驱动程序及运行环境 运行PioneerDriversSetup.exe,该程序为Pilot Pioneer创建软件的运行环境以及测试前的准备。在安装时会出现如下的组件选择界面。 图8-1基础包组件选择 各个模块的说明如下表所示,用户可以根据实际需要选择安装。 表错误!文档中没有指定样式的文字。.1 Pioneer基础包组件说明 组件名称组件说明 Microsoft .net Framework4 微软.net 框架基础组件,初次使用必须安装。 HASP Dongle Driver Pioneer硬件加密锁驱动程序,初次使用必须安装。

嵌入式linux android驱动工程师 面试题总汇

嵌入式linux android驱动工程师面试题总汇 1. 嵌入式系统中断服务子程序(ISR) 收藏中断是嵌入式系统中重要的组成 部分,这导致了很多编译开发商提供一种扩展—让标准C支持中断。具代表事实是,产生了一个新的关键字__interrupt。下面的代码就使用了__interrupt 关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码的。 __interrupt double compute_area (double radius) { double area = PI * radius * radius; printf(" Area = %f", area); return area; } 1). ISR 不能返回一个值。2). ISR 不能传递参数。3). 在许多的处理器/编译器中,浮点一般都是不可重入的。有些处理器/编译器需要让额处的寄存器入栈,有些处理器/编译器就是不允许在ISR中做浮点运算。此外,ISR应该是短而有效率的,在ISR中做浮点运算是不明智的。4). 与第三点一脉相承,printf()经常有重入和性能上的问题。 2.C语言中对位的操作,比如对a的第三位清0,第四位置1.本来应该会的,一犯晕写反了,以后注意! #define BIT3 (1<<3) #define BIT4 (1<<4) a &= ~BIT3; a |= BIT4; 3.考到volatile含义并举例:理解出错,举了很具体的例子,连程序都搬上去了,有些理解不深的没举出来…… volatile表示这个变量会被意想不到的改变,每次用他的时候都会小心的重新读取一遍,不适用寄存器保存的副本。 volatile表示直接存取原始地址 例: 并行设备的硬件寄存器(状态寄存器) 在多线程运行的时候共享变量也要时时更新 一个中断服务子程序中访问到的的非自动变量(不太清楚,正在查找资料ing……) 4.要求设置一绝对地址为0x67a9 的整型变量的值为0xaa66 当时我的写法:#define AA *(volatile unsigned long *)0xaa66 AA = 0x67a9; 答案:

声音和音频设备属性是灰色的 没有声音

声音和音频设备属性是灰色的没有声音 电脑没有声音任务栏没有小喇叭标志 一,没有安装驱动或者驱动不正确、不完整(XP下“控制面板”的“声音和音频设备”,[WIN98则是“控制面板”的“多媒体”]的“音频”选项否灰色不可用);建议重新安装驱动,特别是随主板送的光盘上的驱动(注意:对于AC7的板载声卡,随主板送的光盘上的驱动未必是正确的),如果知道声卡或者主芯片型号(具体方法一是看硬件芯片编号,二是用软件检测 https://www.wendangku.net/doc/9b3283792.html,/cgi-bin/bbs/show/content?groupid=103:10040&st=&sc=&messageid=639561& gpc=0&ggpc=0),也可以到驱动之家https://www.wendangku.net/doc/9b3283792.html,/去搜索最新的驱动。 二,XP下“控制面板”的“声音和音频设备”WIN98则是“控制面板”的“多媒体”]的“音频”选项否灰色不可用,如果是板载声卡的话检查BIOS里是否开启了板载声卡;如果是独立声卡的话也可以开机箱检查声卡是否接触不良(特别是老机子)。 三,XP下“控制面板”的“声音和音频设备”的“音频”选项否灰色不可用,但确认安装过正确的驱动,可以进“控制面板”的“管理工具”的“服务”里查看“Windows Audio”是否开启(“Windows Audio”服务,服务名AudioSrv,管理基于Windows 的程序的音频设备,默认是自动的,偶然也会出现手动的情况),将该服务启动并设置为“自动”。 如果你的XP下没有这个项目的话,你可以将下面蓝字部分保存为Audio.reg文件,然后双击运行,弹出的“是否确认要将?\Audio.reg中的信息添加进注册表?”窗口中点击“是”按钮。 Windows Registry Editor V ersion 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AudioSrv] "DependOnService"=hex(7):50,00,6c,00,75,00,67,00,50,00,6c,00,61,00,79,00,00,00,\ 52,00,70,00,63,00,53,00,73,00,00,00,00,00 "Description"="管理基于Windows 的程序的音频设备。如果此服务被终止,音频设备及其音效将不能正常工作。如果此服务被禁用,任何依赖它的服务将无法启动。" "DisplayName"="Windows Audio" "ErrorControl"=dword:00000001 "Group"="AudioGroup" "ImagePath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\ 74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,\

音频设备常见参数

信噪比 信噪比(signal-to-noise ratio)是音箱回放的正常声音信号与无信号时噪声信号(功率)的比值。用dB表示。国际电工委员会对信噪比的最低要求是前置放大器大于等于63dB,后级放大器大于等于86dB,合并式放大器大于等于63dB。合并式放大器信噪比的最佳值应大于90dB,CD机的信噪比可达90dB以上,高档的更可达110dB以上。信噪比低时,小信号输入时噪音严重,整个音域的声音明显感觉是混浊不清,所以信噪比低于80dB的音箱不建议购买,而低于70dB的低音炮同样原因不建议购买。对于便携式DVD来说,信噪比至少应该在70dB(分贝)以上,才可以考虑。该值越大越好。低于75dB这个指标,噪音在寂静时有可能被发现。AWE64 Gold声卡的信噪比是80dB,较为合理。SBLIVE更是宣称超过120dB的顶级信噪比。总的说来,由于电脑里的高频干扰太大,所以声卡的信噪比往往不令人满意。 灵敏度 灵敏度通俗的讲,耳机的灵敏度反映的是在同样的响度的情况下,需要输入的功率的大小。耳机灵敏度越高所需要的输入功率越小,在同样功率的音源下输出的声音越大。对于随身听等便携设备来说,灵敏度是一个很值得重视的指标。一般来说,随身听耳机灵敏度比监听级耳机高,在110db左右,因此对随身听来说这个值自然是越大越好。 阻抗

耳机的阻抗是其交流阻抗的简称,单位为欧姆(Ω)。一般来说,阻抗越小,耳机就越容易出声、越容易驱动。耳机的阻抗是随其所重放的音频信号的频率而改变的,一般耳机阻抗在低频最大,因此对低频的衰减要大于高频的;对大多数耳机而言,增大输出阻抗会使声音更暗更混(此时功放对耳机驱动单元的控制也会变弱),但某些耳机却需要在高阻抗下才更好听。如果耳机声音尖锐刺耳,可以考虑增大耳机插孔的有效输出阻抗;如果耳机声音暗淡浑浊,并且是通过功率放大器驱动的,则可以考虑减小有效输出电阻。不同阻抗的耳机主要用于不同的场合,在台式机或功放、VCD、DVD、电视、电脑等设备上,常用到的是高阻抗耳机,有些专业耳机阻抗甚至会在200欧姆以上,这是为了与专业机上的耳机插口匹配,此时如果使用低阻抗耳机,一定先要把音量调低再插上耳机,再一点点把音量调上去,防止耳机过载将耳机烧坏或是音圈变形错位造成破音。而对于各种便携式随身听,例如CD、MD或MP3,一般会使用低阻抗耳机(通常都在50欧姆以下),这是因为这些低阻抗耳机比较容易驱动,同时还要注意灵敏度要高,对随身听、MP3来说灵敏度指标更加重要。当然,阻抗越高的耳机搭配输出功率大的音源时声音效果更好。

alsa 库移植与声音编程

在移植alsa-lib和alsa-utils之前首先要移植alsa-device,保证系统支持alsa 驱动,移好alsa-device后再dev/snd后出现相应的设备: ?controlC0 --> 用于声卡的控制,例如通道选择,混音,麦克风的控制等?midiC0D0 --> 用于播放midi音频 ?pcmC0D0c --〉用于录音的pcm设备 ?pcmC0D0p --〉用于播放的pcm设备 ?seq --〉音序器 ?timer --〉定时器 1. tar -xvf alsa-lib_1.0.23.orig.tar.bz2 (1)配置alsa-lib ./configure --host=arm-fsl-linux-gnueabi --prefix=/opt/ALSA/alsa_lib CC=/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/a rm-fsl-linux-gnueabi-gcc error: configure error required courses helper header not found 安装libncursesw5-dev。apt-get install libncursesw5-dev configure: error: panelw library not found ./configure加入--with-curses=ncurses /bin/bash: xmlto: command not found 安装xmlto /bin/rm: cannot remove `libtoolt': No such file or directory 强制make! (2) make

Windows XP 系统中没有音频设备解决方案(图文教程)

下午捣鼓了一下电脑。晚上的时候,发现没声音了。任务栏没有了小喇叭。我进控制面板一 开。提示说是:Windows XP 系统中没有音频设备检查驱动。没问题啊。肯定是哪里的设 置有问题。google一下。。 终于找到了。。。 以下是来自HP 网站的提示操作。很快的就找到了声音,娃哈哈。。。 适用范围 本文适用于安装了Windows XP 操作系统的HP 和Compaq 台式电脑。 故障描述 电脑没有声音,当您从控制面板打开“声音和音频设备属性”窗口时,音频功能无法使用,屏幕上显示“没有音频设备”错误信息,如图 1 没有音频设备所示: 图1: 没有音频设备 解决方法 请按照以下操作步骤,排除电脑的声音故障: 步骤一:启用Windows 音频服务 安装与声音相关的软件或软件更新会禁用Windows 音频服务。在某些情况下,Windows 音频服务可能无法自动重新启用。这可能是导致电脑没有声音的主要原因。按照以下步骤操作,检查故障原因。

如果需要,请手动启用Windows 音频服务: 1. 点击“开始”,再点击“运行”。如图2 运行所示: 图2: 运行 2. 在“打开”栏中输入:“services.msc”,最后点击“确定”按钮。如图3 运行所示: 图3: 运行 3. 在“服务”窗口中,右键点击“Windows Audio”,选择“属性”。如图4 Windows Audio 所示: 图4: Windows Audio

4. 在“Windows Audio 属性”窗口中,从“启动类型”下拉列表中选择“自动”,然后点击“启动” 按钮,启动音频服务。如图 5 启动类型所示: 图5: 启动类型

研华设备驱动程序编程使用介绍.pdf

研华设备驱动程序编程使用介绍 (本文件内容适用于所有数字量和模拟量采集卡) 这一部分包括了创建DA&C应用的基本信息,介绍了设备驱动程序文件的特点,讲解了基本的使用方法。 ?Visual C++ 5.0或更高版本 ?Visual Basic5.0或更高版本 ?Delphi4.0或更高版本 ?Borland C++ 5.0或C++ builder 1.0或更高版本 如果您正在使用的开发工具不是上面所述的几种,请仔细查阅您所使用的工具的文档,了解该工具如何调用动态连接库来创建应用程序。 Windows 95/98/NT/2000的32位DLL的函数库是动态连接,这就是说动态连接库并不直接编译到应用程序的可执行文件中,而只是将动态连接库的路径信息保存在可执行文件中。设备驱动程序只是在可执行程序执行过程中动态连接库被调用的时候才被连接到应用程序。 导入库(*.LIB)包含了它们它们的动态连接库定义的外部函数。它们隐含了动态连接库的位置。如何为您的应用程序引入动态连接库的路径信息,例如:是通过导入函数库还是通过函数声明的方法,取决于您所使用的编程工具。 使用函数原型是良好的编程习惯,这也是为什么设备驱动程序总是被打包成函数原型形式。安装工具为您选择的的开发工具拷贝正确的的原型文件。如果你不打算使用研华驱动程序支持的开发工具,那么您需要创建您自己的函数原型。 按照下面的步骤开始对研华的硬件设备编程应用: 这一部分我们推荐您采用研华的设备驱动程序结合微软的可视化平台来开发您的系统!研华设备驱动程序支持Visual C++ 5.0及其以上的版本。 要使用DA&C函数,需要按照下面的步骤使用研华驱动程序提供的DLL(动态连接库,Dynamic Linked Library) 1.象编写一般的Windows应用程序一样创建您的应用程序代码,在这些代码中可以象典型的函数调用一样调用研华驱动程序中提供的动态连接库中(DLL)的函数。 2.声明在您的程序中用到的函数,即:包含动态连接库(DLL)的头文件,该函数声明了所有的动态连接库中的函数,如下所示: #include “driver.h”

Android移动应用开发习题答案

Android移动应用开发习题答案 单元1 Android开发环境搭建与模拟器创建 1.填空题 (1) 2008 (2) Linux、操作系统 (3) 应用程序层、应用程序框架层、核心类库、Linux内核 (4) Java C++/C (5) 应用框架 (6) 应用程序 (7) 模拟器、Android模拟器 (8) IntelliJ IDEA Android 2.选择题 (1)创建程序的过程中,填写Application Name表示()。 正确答案:A (2)Android操作系统的手机可以有以下几个方法进行软件安装()。(多选题)ABCD (3)Android操作系统主要的特点是:()。(多选题) 正确答案:ABC (4)以下对Android操作系统描述正确的是:()。(多选题) 正确答案:ABCD (5)以下哪些是Android Stuido的优势()。(多选题) 正确答案:ABCD (6)以下哪些是Genymotion模拟器的优势()。(多选题) 正确答案:ABCD 3.简答题 (1)Android的四层架构分别包括哪几层?分别起到什么作用? 参考答案: Linux内核层(Linux Kernel):基于Linux内核,内核为上层系统提供了系统服务。 核心类库层(Libraries):系统库基于C/C++语言实现,通过接口向应用程序框架层提

基于Android Studio的移动应用开发任务驱动教程 供编程接口。 应用框架层(Application Framework):为开发者提供了一系列的Java API,包括图形用户界面组件View、SQLite数据库相关的API、Service组件等。 应用程序层(Applications):包含了Android平台中各式各样的应用程序。 (2)简述Android开发环境安装的步骤。 参考答案: 下载并安装JDK,配置JDK的环境变量; 从Anroid官网上下载Android开发组件(包含Eclipse和Android SDK、ADT); 安装Android开发环境(包括配置Android SDK的环境变量、打开Eclipse通过菜单设定Android SDK路径)。 (3)简述Android Studio的优势。 参考答案:略。 (4)简述Genymotion模拟器的优势。 参考答案:略。 (5)简述Android应用程序创建和运行的步骤。 参考答案: 通过菜单创建Android应用程序,设置应用程序名、Android版本等基本信息。 单击菜单中的运行按钮可以直接运行Android项目(也可以通过菜单配置运行参数, 指定运行的模拟器)。 单元2 Android Studio的组成结构与基本操作 1.填空题 (1) res/layout (2) Activity、Bundle (3) XML (4) java代码文件 (5) AndroidManifest.xml (6) 打包成.apk文件 2.选择题 (1)如果需要创建一个字符串资源,需要将字符串放在res\values的哪个文件中?()B (2)新建的Android程序默认的布局方式是相对布局(RelativeLayout),该布局中包含一个()控件。 B (3)要让布局文件或者控件能够显示在界面上,必须要设置RelativeLayout和控件的

声音和音频设备成灰色了没有音频设备怎么解决

声音和音频设备成灰色了没有音频设备怎么解决声音和音频设备成灰色了没有音频设备怎么解决 问题补充 怎么办啊

今天碰到一台机器,在设备管理器里没有叹号,声卡也已安装官方驱动,但是在声音和音频设备中还是显示灰色,机器也没有声音。找来找去原来是windows audio服务丢失了。(判断是否为windows audio服务引起上述声卡不能用问题的方法是在控制面板-管理工具-服务中查找是否有windows audio服务并查看是否已自动启动?) 解决方法如下: 1、将下面的文件复制到文本文件中,保存后改名为Audio.reg Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AudioSrv] "DependOnService"=hex(7):50,00,6c,00,75,00,67,00,50,00,6c,00,61,00,79,00,00,00,\ 52,00,70,00,63,00,53,00,73,00,00,00,00,00 "Description"="管理基于 Windows 的程序的音频设备。如果此服务被终止,音频设备及其音效将不能正常工作。如果此服务被禁用,任何依赖它的服务将无法启动。" "DisplayName"="Windows Audio" "ErrorControl"=dword:00000001 "Group"="AudioGroup" "ImagePath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\ 74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,\ 00,76,00,63,00,68,00,6f,00,73,00,74,00,2e,00,65,00,78,00,65,00,20,00,2d,00,\ 6b,00,20,00,6e,00,65,00,74,00,73,00,76,00,63,00,73,00,00,00 "ObjectName"="LocalSystem" "Start"=dword:00000002 "Type"=dword:00000020 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AudioSrv\Parameters] "ServiceDll"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,\ 00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,\ 61,00,75,00,64,00,69,00,6f,00,73,00,72,00,76,00,2e,00,64,00,6c,00,6c,00,00,\ 00 "ServiceDllUnloadOnStop"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AudioSrv\Enum] "0"="Root\\LEGACY_AUDIOSRV\\0000" "Count"=dword:00000001 "NextInstance"=dword:00000001 2、双击刚刚创建并保存的audio.reg文件,并重启机器就OK了。

USB音频设备的设计与实现

USB音频设备的设计与实现 Design and Implementatio n of USB Audio Device (江西理工大学)吴君钦 (Jiangxi University of Science and Technology)Wu,Junqin 摘要:在介绍USB音频设备及其驱动程序结构的基础上,对USB Audio功能节点、USB Audio描述符、USB Audio请求、码流同步等设计重要方面进行了详细论述,提出了一种准同步USB码流速度匹配方法。使用准同步法,在一对USB ISO端点上,成功地实现了实时全双工USB音频通信功能,简化了时钟同步系统的设计。 关键词:USB音频,驱动程序, 准同步通信 Abstract:Introduce the structure of USB audio device and the structure of USB audio driver, discuss the function endpoints of USB audio peripheral, the USB audio descriptors,the USB audio request and the synch mechanism for USB audio stream detailly, bring out a new synch method called p lesiochronous communication for USB audio stream speed matching. U sing the p lesiochronous communication model , implement duplex audio communication functions on twain USB ISO endpoints, simplify the design of clock synch system . Key words:USB Audio; Device driver; P lesiochronous communication 1 引言 随着USB接口的推广和普及,越来越多的电脑外部设备采用USB接口, 在便携电脑中,有采用USB口扩展外设取代PCMCIA总线接口的趋势。特别是USB2.0的数据传输速率达480bps,USB实时同步数据传输模式适合于传送高速实时音视频数据流。MP3播放器、U盘等设备的流行,使USB接口的应用更为广泛,若能为这些便携设备增加USB音频功能,MP3等设备将成为语音聊天、网络电话等通信终端设备,大大拓展了应用领域,为此本文对USB音频外部设备的体系结构、工作原理及音频数据码流同步方法等设计的重要方面做详细论述。 2 USB设备与驱动程序 一般,USB外部设备包含一个USB设备控制器(USB peripheral Controller),设备控制器与通信另一端主控制器(USB Host Controller)的端点(Endpiont)管道(Pipe)之间的实现逻辑联接[1][2]。主机端驱动软件包含USB主控器驱动程序、设备驱动程序和应用软件三部分,主控制器驱动程序由操作系统提供支持,USB设备开发人员一般只需编写USB设备驱动程序和用户应用程序两部分,以实现特定的功能。但设备端所有功能的驱动软件必须由开发商完成,关于一般USB设备的设计请参阅文献[1][4][5]。 虽然USB音频流媒体设备各部分与标准USB设备各部件间的逻辑关系相一致,但USB 音频设备(USB Audio Device)有其殊性, 它的结构和实现机制更为复杂。图1是微软推荐的标准USB音频设备WDM驱动序各部分之间的逻辑层次关系[2]。图1 USB音视频流类驱动程序(AVStream Class Driver,USBAudio.sys)运行在USB主机控制器驱动驱动程序之上, 属于USB设备驱动程序范畴。图1黑体部分是与USB Audio有关的驱动和应用程序模块,而其他模块则与USB Audio无关。 如果硬件设备按照USB标准音频设备规范[3]设计,设备开发商无须编写特定的USB设备驱动程序,用户可直接使用Win98、Win2000或后续版本中绑定的标准USB Audio驱动程序,在其他操作系统中也有相应的标准驱动程序,节省了大量的开发时间,所以本文不详细讨论USB Audio驱动程序的设计问题,而重点讨论USB音频设备的设计。此外标准USB音频设备可以与现有的各种音频播放软件、VOIP通信软件实现无缝联接。

51CTO学院-Android驱动与HAL开发实战视频课程

Android驱动与HAL开发实战视频课程 课程目标 本教程主要讲解了如何开发Android底层的驱动程序(Linux驱动),以及Android HAL的开发。并使用蜂鸣器等demo来讲解。 适用人群 了解Android的基本知识,想从事Android底层开发的学员。 课程简介 课程目标: 本教程主要讲解了如何开发Android底层的驱动程序(Linux驱动),以及Android HAL的开发。并使用蜂鸣器等demo来讲解。 适合对象: 了解Android的基本知识,想从事Android底层开发的学员。 学习条件: 熟悉Linux的基本操作和C语言 1 Android底层开发概述 [免费观看] 47分钟 本讲主要介绍了Android底层开发概况、Android底层架构、Linux驱动程序的基本结构等内容。 2 搭建开发环境 [免费观看] 44分钟 本讲主要介绍了如何搭建用于开发Android底层的开发环境。 3 源代码下载和编译 45分钟 本讲主要介绍了如何编译Android源代码和Linux内核源代码。并且如何下载这些系统的源代码。 4

搭建S3C6410开发板的测试环境 40分钟 本讲主要介绍了如何搭建S3C6410开发板(Android系统)的开发测试环境。本教程后面的蜂鸣器、LED驱动开发都会使用这个开发板进行开发和测试,其他类似的开发板也同样适用。不过需要向厂家或销售商索要相应的驱动。其余的例子也可以在手机和平板电脑上测试。 5 第一个Linux驱动_读写设备文件(1) [免费观看] 45分钟 本讲主要介绍了如何开发第一个有读写功能的Linux驱动程序(第一部分) 6 第一个Linux驱动_读写设备文件(2) [免费观看] 47分钟 本讲主要介绍了实现第一个Linux驱动的第二部分。 7 实现LED驱动(1) 42分钟 本讲主要介绍了实现LED驱动的基本方法,并实现了这个LED驱动(第一部分)。 8 实现LED驱动(2) 42分钟 本讲主要介绍了实现LED驱动的基本方法,并实现了这个LED驱动(第二部分)。 9 实现LED驱动(3) 47分钟 本讲主要介绍了实现LED驱动的基本方法,并实现了这个LED驱动(第三部分)。 10

Android驱动---LED驱动的编写汇总

Android驱动---LED驱动的编写 1.编写Android驱动时,首先先要完成Linux驱动,因为android驱动其实是在linux驱动基础之上完成了HAL层(硬件抽象层),如果想要测试的话,自己也要编写Java程序来测试你的驱动。 2.android的根文件系统是eclair_2.1版本。我会上传做好的根文件系统提供大家。这里要说的是,android底层内核还是linux的内核,只是进行了一些裁剪。做好的linux内核镜像,这个我也会上传给大家。android自己做了一套根文件系统,这才是android自己做的东西。android事实上只是做了一套根文件系统罢了。 假设linux驱动大家都已经做好了。我板子上有四个灯,通过ioctl控制四个灯,给定不同的参数,点亮不同的灯。 linux驱动代码因平台不同而有所不同,这就不黏代码了。 这是我测试linux驱动编写的驱动,代码如下: [cpp] view plaincopy #include #include #include #include #include #include #include #include #define LED_ON _IO ('k',1) #define LED_OFF _IO ('k',2) int main() { int i = 0; int dev_fd; dev_fd = open("/dev/led",O_RDWR); if ( dev_fd == -1 ) { printf("Cann't open file /dev/led\n"); exit(1); } while(1) { ioctl(dev_fd,LED_ON,1); sleep(1); ioctl(dev_fd,LED_OFF,1); sleep(1); ioctl(dev_fd,LED_ON,2); sleep(1); ioctl(dev_fd,LED_OFF,2);

相关文档
相关文档 最新文档