原创 wav音乐播放

2010-3-6 15:06 3339 10 10 分类: MCU/ 嵌入式

wav音乐播放


by panasonic.lin@163.com


 


点击看大图


最近工作比较忙~偶的mp3计划前进了一步就没时间弄了...暂时做到了播放wave文件,16k的采样,44.1k的只需改变下初始化
iis
的分频系数,不过我的44b0主频是60mhz,算到准确的44.1khz有点难,采样率太大或者太小会使音乐变调。改变44b0主频的话,需要把控制台的波特率也改了,不然,嘿嘿。
文件系统暂时用nfs,板上只有uboot,启动后,挂载nfs根文件系统,加载uda1314驱动模块,然后播放wav文件时候,文件系统会从nfs读取音乐数据,uclinux通过系统调用writeuda1314的驱动程序空间,驱动程序再通过iis接口发送到uda1314,转换成电压,音乐就这样出来了。iis是流式格式的,所谓流式当然不能断流,所以缓冲是必然的,驱动的设计很重要,不然音乐会断断续续的。网上的uda1314的驱动大部分都是2410的,linux2.6版本的2410底层驱动包含了很好的dma代码,44b0就不行了,只好自己动手,结合linux设备驱动程序练习一下中断和dma的内容。另外,linux2.6kfifo真的很巧妙。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条评论)

登录后参与讨论
我要评论
0
10
关闭 站长推荐上一条 /2 下一条