Linux声卡驱动移植和测试

Linux声卡驱动移植和测试

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

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

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

Linux声卡驱动移植和测试

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

Linux声卡驱动移植和测试

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

Linux声卡驱动移植和测试

Linux声卡驱动移植和测试

4、 DMA的原理;

5、 驱动加载和卸载等;

Linux声卡驱动移植和测试

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

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

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

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

Linux声卡驱动移植和测试

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

Linux声卡驱动移植和测试

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

Linux声卡驱动移植和测试

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

Linux声卡驱动移植和测试

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

Linux声卡驱动移植和测试

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

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

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

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

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

相关推荐