一、分析驱动程序,根据开发板修改代码

代码太长,就不贴了,几个注意点:

1、 查看开发板原理图和S3C2410的datasheet,UDA1341的L3MODE、L3DATA、L3CLOCK分别与S3C2410的GPB2、GPB3、GPB4相连,IISLRCK=GPE0, IISSCLK=GPE1, CDCLK=GPE2,IISSDI=GPE3, IISSDO=GPE4,部分代码如下:

2、 两个重要结构体:audio_buf_t和audio_stream_t,其中audio_stream_t 为音频流数据组成了一个环形缓冲区;

3、 file_operations结构体,open()、write()、read()、ioctl()、release()等函数的底层实现;

4、 DMA的原理;

5、 驱动加载和卸载等;

二、向内核中添加声卡驱动

1、  配置内核中的声卡选项;

注意:UDA1341的驱动程序s3c2410-oss.c在linux/sound/oss/目录下(内核版本:Linux-2.6.8.1)。

在内核树目录下输入make menuconfig,会跳出内核配置界面:

然后按键盘的向下导航键,下拉至Sound选项:

按回车,进入Sound选项界面:

选中“Open Sound System”选项,回车进入OSS选项界面:

分别选中“Open Sound System(DEPRECATED)”和“S3C2410 audio support”两项,按空格,直到选项前面<>内变成*,然后按Tab键退出,保存配置信息:

ps:*表示将驱动程序编译进内核,空表示不编译驱动程序,M表示将驱动程序编译成模块。

2、  编译内核,生成内核镜像zImage;

在内核树目录下,输入命令make zImage,编译成功后会在linux/arch/arm/boot/目录下生成zImage文件。

3、  打开Samba服务器,将内核镜像zImage共享到windows平台下,再通过DNW软件将zImage下载到开发板上;

经过以上步骤,就成功地将声卡驱动程序添加进内核。

三、测试声卡

1、启动开发板,查看声卡设备;

从显示结果可以看出,驱动程序已经成功地在内核中注册了两个字符设备:dsp和mixer,dsp的主设备号是14,次设备号是3;mixer的主设备号也是14,次设备号是0。

2、查看声卡能否正常录音和播放;

创建临时文件夹audio,使用命令

实现录音,生成音频文件audio.wav,使用命令

实现放音,通过测试,发现声卡工作正常。

遇到的问题:

测试声卡时,出现错误“cat :Read  error:Illegal  seek”。

解决办法:

修改声卡驱动程序,将驱动程序里的smdk2410_audio_read函数中的部分代码注释了,如下图红色圈出部分。

注意:修改驱动程序后,需要重新编译内核,生成zImage文件并下载到开发板上。

2014年6月13日星期五16:23

原文:http://blog.csdn.net/suaoyang/article/details/30496823

linux音频驱动程序测试,Linux声卡驱动移植和测试相关推荐

  1. Linux声卡驱动移植和测试

    一.分析驱动程序,根据开发板修改代码 代码太长,就不贴了,几个注意点: 1. 查看开发板原理图和S3C2410的datasheet,UDA1341的L3MODE.L3DATA.L3CLOCK分别与S3 ...

  2. S3C2440 音频解码芯片WM8976声卡驱动移植、测试以及madplay播放mp3文件(三十一)

    https://www.cnblogs.com/lifexy/p/7867782.html 本节学习: 分析linux中的OOS声卡系统 修改s3c2410-uda1341.c的控制部分,移植wm89 ...

  3. 基于嵌入式Linux的千兆以太网卡驱动程序设计及测试

    基于嵌入式Linux的千兆以太网卡驱动程序设计及测试 一. 引言 千兆以太网是一种具有高带宽和高响应的新网络技术,相关协议遵循IEEE 802.3规范标准.采用和10M以太网相似的帧格式.网络协议和布 ...

  4. Linux设备驱动程序 三 字符设备驱动

    Linux设备驱动程序 三 字符设备驱动 笔记 第三章 字符驱动设备 本章会编写一个完整的字符设备,字符设备简单,易于理解, 名字是scull:Simple Caracter Utility for ...

  5. AM335x—WM8960声卡驱动移植

    经过一段时间的调试,终于调好了TQ335x的声卡驱动.TQ335x采用的Codec是WM8960,本文来总结下WM8960驱动在AM335x平台上的移植方法.Linux声卡驱动架构有OSS和ALSA两 ...

  6. I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之声卡驱动移植

    经过前面的移植,tqimx6q已经可以正常驱动触摸屏了,本文我们来移植声卡驱动. DTS编写 由于tqimx6q搭载的声卡是sgtl5000芯片,因此,参考dts目录下其它开发板的相应信息,我们可以在 ...

  7. linux声卡驱动源码,Linux声卡驱动移植和測试(示例代码)

    一.分析驱动程序,依据开发板改动代码 代码太长,就不贴了,几个注意点: 1. 查看开发板原理图和S3C2410的datasheet,UDA1341的L3MODE.L3DATA.L3CLOCK分别与S3 ...

  8. Linux(RedHat9.0)下Alsa声卡驱动的安装

    自从装来RedHat9.0就没有听到过声音,也不知道安装了多少次声卡驱动,每种都试验过,都没有成功过,今天终于安装成功,需要的朋友可以参考一下. 首先查看一下,系统声音是否打开,有些朋友电脑没有声音, ...

  9. linux 设备驱动程序 过滤,Linux驱动发开,usb设备的probe全过程

    本文将详细讲述2.6.22 下的一个USB 设备插上linux 系统的PC 后是如何一步一步调到我们的usb 设备驱动的probe 函数的,我们知道我们的USB 驱动的probe 函数中的一个参数是i ...

最新文章

  1. AlertDialog创建6种对话框的用法
  2. 2020 华为杯 数模 B题 数据挖掘
  3. r语言提取列名_玩转数据处理120题之P1-P20(R语言tidyverse版本)
  4. python下载指定页面的所有图片
  5. linux命令ps -aux|grep xxx详解
  6. 简单的字段类型定义(新新手看)
  7. IEEE论文模板下载地址及说明
  8. SMT32F767通过STM32CUBE HAL库配置QSPI和W25Q256驱动
  9. 国产操作系统之深度deepin安装
  10. 烽火通信实习应聘经验
  11. facebook获取好友头像
  12. linux中test的用法,如何在Linux中使用test命令
  13. Python环境搭建-自用
  14. 使用word绘制钟表刻度表盘
  15. 【Unity】DnSpy断点调试Unity已发行游戏的dll
  16. 小霸王推出可挖矿的VR眼镜,把IPFS、以太坊技术全用上了
  17. 视觉显著性检测——PR曲线
  18. 【视频加水印】Video Watermark Pro视频添加动态水印(附工具下载地址)
  19. 怎样使局域网和无线(WiFi)共存
  20. 虚拟机中安装Ubuntu,详细教程

热门文章

  1. 使用sqlmetal工具自动生成SQL数据库的Linq类文件
  2. 基于Heritrix+Lucene的搜索引擎构建(6)——搜索UI与结果页面
  3. Silverlight中的InkPresenter(可以保存、加载)
  4. linux的8小时差问题解决
  5. 【报告分享】2019网红电商生态发展白皮书.pdf
  6. Nvidia League Player:来呀比到天荒地老
  7. php.ini 是否设置路由,php – 如何在路由INI文件中为Zend Framework中的子域编写路由链?...
  8. java连接mysql表格_java中表格连接数据库
  9. 吴恩达机器学习课后作业深度解析(附答案)(ex2)
  10. [转] 先验概率与后验概率贝叶斯与似然函数