wav音乐播放
最近工作比较忙~偶的mp3计划前进了一步就没时间弄了...暂时做到了播放wave文件,16k的采样,44.1k的只需改变下初始化
iis的分频系数,不过我的44b0主频是60mhz,算到准确的44.1khz有点难,采样率太大或者太小会使音乐变调。改变44b0主频的话,需要把控制台的波特率也改了,不然,嘿嘿。
文件系统暂时用nfs,板上只有uboot,启动后,挂载nfs根文件系统,加载uda1314驱动模块,然后播放wav文件时候,文件系统会从nfs读取音乐数据,uclinux通过系统调用write到uda1314的驱动程序空间,驱动程序再通过iis接口发送到uda1314,转换成电压,音乐就这样出来了。iis是流式格式的,所谓流式当然不能断流,所以缓冲是必然的,驱动的设计很重要,不然音乐会断断续续的。网上的uda1314的驱动大部分都是2410的,linux2.6版本的2410底层驱动包含了很好的dma代码,44b0就不行了,只好自己动手,结合linux设备驱动程序练习一下中断和dma的内容。另外,linux2.6的kfifo真的很巧妙。uclinux2.4没办法只好借用kfifo.c。驱动的write大部分借鉴了ldd里面的shortprint的内容,具体就不分析了,大家看代码吧,代码也没整理,下一步是整理成oss的规范,结合libmad库,做个mp3!
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
附上代码https://static.assets-stash.eet-china.com/album/old-resources/2010/3/6/eafcabfc-8b0c-4bec-9217-eb95b05d83eb.zip
文章评论(0条评论)
登录后参与讨论