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

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

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、  打开Sambaserver,将内核镜像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

最新文章

  1. .NET跨平台之旅:将示例站点从 ASP.NET 5 RC1 升级至 ASP.NET Core 1.0
  2. 前端Js框架汇总
  3. bzoj 2938 AC自动机
  4. BZOJ3103 : Palindromic Equivalence
  5. php get set方法深入理解
  6. RNN 与 LSTM 的应用
  7. Java内存溢出的详细解决方案
  8. MCS-51系列和80C51系列单片机是否相同
  9. DB操作用法总结。
  10. C语言缓冲区清空
  11. [Q]手动加载菜单方法
  12. Redis缓存数据之简单逻辑
  13. 【基础】Attribute的妙用
  14. vue2.0实现前端星星评分功能组件
  15. 20165304《JAVA程序设计》第二周学习总结
  16. MySql常用操作语句(1:启动、连接数据库及用户操作)
  17. vue 关于数组和对象的更新
  18. Java Core - 序列化和反序列化
  19. 关于MYSQL ERROR1045 报错的解决办法
  20. 【Hadoop学习之十一】MapReduce案例分析三-PageRank

热门文章

  1. PHP 在表单POST提交后数据分页实现,非GET,解决只有第一页显示正确的问题
  2. HTML meta信息含义
  3. Masonry基础API
  4. 安卓app测试之内存分析
  5. day14-二分法、匿名函数、内置函数以及面向过程编程
  6. Java基础(三)--final关键字
  7. 05Microsoft SQL Server 表创建,查看,修改及删除
  8. Python【每日一问】34
  9. 在添加新内容时,creatat没有数据
  10. python whl模块安装方法