资源描述:
《声卡驱动程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、声卡驱动程序soundsocs3c24xxs3c2410-udal341.cs3c2410_udal341」nitdriver_register(&s3c2410iis_driver);s3c2410iis_probe/*使能时钟*//*配置GPIO*//*设置S3C2440的IIS控制器*/init_s3c2410」is_bus/*使用L3接口初始化udal341芯片*/init_udal341();/*设置两个DMA通道:一个用于播放,另一个用于录音*/register一sound_dsp(&smdk2410_audio_fops,-1);soun
2、d_insert_unit(&chains[3],fops,dev,3,131,"dsp'SJWUSR
3、SJRUSR,NULL);///dev/dspregister_sound_mixer(&smdk2410_mixer_fops,-1);sound_insert_unit(&chains[0],fops,dev,0,128,"mixer",SJRUSR
4、SJWUSR,NULL);///dev/mixer/dev/dsp:用于播放/录音/dev/mixer:调整音量1.主设备号2.file_operations3.register_chrdevap
5、p:open()//假设主设备号为14soundcore_openintunit=iminor(inode);s=_look_for_unit(chain,unit);//从chains数组里得到,谁来设置这个数组?new一fops=fops_get(s->unit__fops);file->f_op=new_fops;err=file->f_op->open(inode,file);求曰:app:readfile->f_op->read播放:app:writefile->f_op->write测试:1.确定内核里己经配置了s
6、oundsocs3c24xxs3c2410-udal341.c->DeviceDrivers->Sound->AdvancedLinuxSoundArchitecture->AdvancedLinuxSoundArchitecture->SystemonChipaudiosupport<*>I2SoftheSamsungS3C24XXchips2.makeulmage使用新内核启动3.Is-I/dev/dsp/dev/mixer4.播放:在WINDOWSPC里找一个wav文件,放到开发板根文件系统里catWindows.wav
7、>/dev/dsp5.录音:cat/dev/dsp>sound.bin然后对着麦克风说话ctrl+c退出catsound.bin>/dev/dsp//就可以听到录下的声音怎么写WM8976驱动程序?1.IIS部分一样,保持不变2.控制部分不同,重写测试WM8976:1.确定内核里己经配置了soundsocs3c24xxs3c2410-udal341.c->DeviceDrivers->Sound->AdvancedLinuxSoundArchitecture//兼容OSS->AdvancedLinuxSoundArchitec
8、ture->SystemonChipaudiosupport<*>I2SoftheSamsungS3C24XXchips2.修改sound/soc/s3c24xx/Makefileobj-y+=s3c2410-udal341.o改为:obj-y+=s3c-wm8976.o3.makeulmage使用新内核启动4.Is-I/dev/dsp/dev/mixer5.播放:在WINDOWSPC里找一个wav文件,放到开发板根文件系统里catWindows.wav>/dev/dsp6.录音:cat/dev/dsp>sound.bin然后对着麦克风说话ct
9、rl+c退出catsound.bin>/dev/dsp//就可以听到录下的声音使用madplay测试声卡:1.解压:tarxzfIibid3tag-O.15.lb.tar.gz//库tarxzflibmad-0.15.lb.tar.gz//库tarxzfmadplay-0.15.2b.tar.gz//APP2.编译Iibid3tag-O.15.lbmkdirtmpcdIibid3tag-O.15.lb./configure--host=arm-linux-prefix=/work/drivers_and_te