how to directly copy memory data to SSI(ESAI) fifo //怎样播放自己分配的DMA内存里的数据(数据非由alsa传向底层,而是DMA直接从一块内存里面搬移)

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

how to directly copy memory data to SSI(ESAI) fifo //怎样播放自己分配的DMA内存里的数据(数据非由alsa传向底层,而是DMA直接从一块内存里面搬移)

how to directly copy memory data to SSI(ESAI) fifo //怎样播放自己分配的DMA内存里的数据(数据非由alsa传向底层,而是DMA直接从一块内存里面搬移)

通常的音乐播放是这样一个流程:
alsa将一段上层的应用空间和底层的物理空间通过mmap映射起来,然后DMA从被映射的物理空间往I2S的fifo传送数据。
现在有个客户想将FEC网络那边收到的数据中的audio数据分离出来,暂存到一段物理内存中,然后通过DMA传输到我们芯片的I2S fifo,从而节省掉数据在上层、底层之间来回调用的时间。
这就需要我们I2S这边支持通过DMA直接从一段物理内存拿数据。
为了较为方便的实现这一功能,通过对ALSA架构的分析,我保留了我们整个ASoC代码的架构,只是不让DMA从原来的mmap的地址拿数据,而是从我自己分配的DMA内存中拿数据。
258         uint8_t *wbuf;
259         uint8_t *index1;
261         wbuf = dma_alloc_coherent(NULL, 0x10000, &wpaddr, GFP_DMA);
265         for (i=0; i<0x10000; i++) {
269                         *(wbuf + i) = wav_data[i];
273         }
333                 iprtd->desc = chan->device->device_prep_dma_cyclic(
334                         chan, wpaddr,
335 //                      chan, dma_addr,
336                         iprtd->period_bytes * iprtd->periods,
337                         iprtd->period_bytes,
338                         substream->stream == SNDRV_PCM_STREAM_PLAYBACK     ?
339                         DMA_TO_DEVICE : DMA_FROM_DEVICE);
代码实现上实际上是比较简单的,可以套用以前做过的dma_m2m的部分代码。

现在我们要拿一些wav里面的audio数据。
linux
可以用16进制的方法读wav里面的数据:
hexdump -n 65700 -C audio44k16S.wav > wav_data_44100_s16_stereo.haudio44k16S.wav

里面的audio数据用16进制的形式保存到wav_data_44100_s16_stereo.h这个文件里。

然后我们要编辑这个头文件里的audio数据原数据是这种格式的
00000000  52 49 46 46 12 63 0c 00  57 41 56 45 66 6d 74 20  |RIFF.c..WAVEfmt |
00000010  12 00 00 00 01 00 02 00  44 ac 00 00 10 b1 02 00  |........D.......|
00000020  04 00 10 00 00 00 66 61  63 74 04 00 00 00 b5 18  |......fact......|
00000030  03 00 64 61 74 61 d4 62  0c 00 58 01 f0 00 98 01  |..data.b..X.....|
00000040  56 01 3d 01 1e 01 d0 00  ae 00 81 00 35 00 40 00  |V.=.........5.@.|
00000050  dd ff f7 ff 90 ff 9f ff  1d ff 54 ff bb fe 18 ff  |..........T.....|
00000060  61 fe 1e ff e7 fd 5e ff  e4 fd 23 00 39 fe ee 00  |a.....^...#.9...|

我们要把它转换成符合我们要求的这种形式
,0x63 ,0xf0 ,0x0f ,0xf0 ,0x7f ,0xf1 ,0x21 ,0xf1  ,0x89 ,0xf3 ,0xef ,0xf2 ,0x9d ,0xf5 ,0x8c ,0xf4
,0x5f ,0xf7 ,0xd3 ,0xf5 ,0x8c ,0xf8 ,0x08 ,0xf7  ,0x4c ,0xf9 ,0x01 ,0xf8 ,0x74 ,0xf9 ,0x2e ,0xf8
,0x1c ,0xf9 ,0x15 ,0xf8 ,0x09 ,0xf9 ,0x82 ,0xf7  ,0x45 ,0xf9 ,0xd1 ,0xf6 ,0x0b ,0xf9 ,0x1e ,0xf6
,0xce ,0xf8 ,0xbe ,0xf5 ,0xd7 ,0xf8 ,0x9a ,0xf5  ,0xa8 ,0xf9 ,0xc7 ,0xf5 ,0xe0 ,0xfa ,0x3e ,0xf6
,0x25 ,0xfc ,0x44 ,0xf7 ,0x44 ,0xfd ,0xa2 ,0xf8  ,0x9a ,0xfe ,0xea ,0xf9 ,0x25 ,0x00 ,0x94 ,0xfb
,0x16 ,0x02 ,0xec ,0xfc ,0xcb ,0x03 ,0xfe ,0xfd  ,0xef ,0x04 ,0xa5 ,0xfe ,0x45 ,0x05 ,0x0b ,0xff
,0x3b ,0x05 ,0x24 ,0xff ,0x34 ,0x05 ,0x94 ,0xff  ,0x06 ,0x05 ,0x13 ,0x00 ,0x6c ,0x04 ,0x82 ,0x00

这里有一个比较好的方法

可以通过VIM

垂直编辑的方法较为轻松的实现。

vim垂直编辑:
ctrl+v 然后上下左右移动选中,D删除选中的。
ctrl+v 选中, shift+i 可以在选中的地方加入想插入的字符。
将编辑过的数据放到uint8_t wav_data[],赋值给wbuf,wbuf对应的物理地址
wpaddr中的数据,就是上面wav中的audio数据。

wbuf = dma_alloc_coherent(NULL, 0x10000, &wpaddr, GFP_DMA);中的0x10000=1024*64是我们分配的dma内纯的大小,我们sdma是根据以下大小传输数据的:
iprtd->period_bytes = 21844, iprtd->periods = 3
//21844*3=65532= 0xfffc
这样实际上DMA是不停的刷我们分配的内存里的数据,因为我们没有更新DMA内存里的数据,所以听到的是不断重复播放的声音片段。
刚开始时,我听这个片段,发现片段之间有较为明显的pop音,这是由于我截取的是一首音乐开始的部分,包含了wav包头数据,这不是音乐数据,将这个去除就可以了。

标记 (4)
%3CLINGO-SUB%20id%3D%22lingo-sub-1119945%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3Ehow%20to%20directly%20copy%20memory%20data%20to%20SSI(ESAI)%20fifo%20%2F%2F%E6%80%8E%E6%A0%B7%E6%92%AD%E6%94%BE%E8%87%AA%E5%B7%B1%E5%88%86%E9%85%8D%E7%9A%84DMA%E5%86%85%E5%AD%98%E9%87%8C%E7%9A%84%E6%95%B0%E6%8D%AE%EF%BC%88%E6%95%B0%E6%8D%AE%E9%9D%9E%E7%94%B1alsa%E4%BC%A0%E5%90%91%E5%BA%95%E5%B1%82%EF%BC%8C%E8%80%8C%E6%98%AFDMA%E7%9B%B4%E6%8E%A5%E4%BB%8E%E4%B8%80%E5%9D%97%E5%86%85%E5%AD%98%E9%87%8C%E9%9D%A2%E6%90%AC%E7%A7%BB%EF%BC%89%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1119945%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%E9%80%9A%E5%B8%B8%E7%9A%84%E9%9F%B3%E4%B9%90%E6%92%AD%E6%94%BE%E6%98%AF%E8%BF%99%E6%A0%B7%E4%B8%80%E4%B8%AA%E6%B5%81%E7%A8%8B%EF%BC%9A%3CBR%20%2F%3Ealsa%E5%B0%86%E4%B8%80%E6%AE%B5%E4%B8%8A%E5%B1%82%E7%9A%84%E5%BA%94%E7%94%A8%E7%A9%BA%E9%97%B4%E5%92%8C%E5%BA%95%E5%B1%82%E7%9A%84%E7%89%A9%E7%90%86%E7%A9%BA%E9%97%B4%E9%80%9A%E8%BF%87mmap%E6%98%A0%E5%B0%84%E8%B5%B7%E6%9D%A5%EF%BC%8C%E7%84%B6%E5%90%8EDMA%E4%BB%8E%E8%A2%AB%E6%98%A0%E5%B0%84%E7%9A%84%E7%89%A9%E7%90%86%E7%A9%BA%E9%97%B4%E5%BE%80I2S%E7%9A%84fifo%E4%BC%A0%E9%80%81%E6%95%B0%E6%8D%AE%E3%80%82%3CBR%20%2F%3E%E7%8E%B0%E5%9C%A8%E6%9C%89%E4%B8%AA%E5%AE%A2%E6%88%B7%E6%83%B3%E5%B0%86FEC%E7%BD%91%E7%BB%9C%E9%82%A3%E8%BE%B9%E6%94%B6%E5%88%B0%E7%9A%84%E6%95%B0%E6%8D%AE%E4%B8%AD%E7%9A%84audio%E6%95%B0%E6%8D%AE%E5%88%86%E7%A6%BB%E5%87%BA%E6%9D%A5%EF%BC%8C%E6%9A%82%E5%AD%98%E5%88%B0%E4%B8%80%E6%AE%B5%E7%89%A9%E7%90%86%E5%86%85%E5%AD%98%E4%B8%AD%EF%BC%8C%E7%84%B6%E5%90%8E%E9%80%9A%E8%BF%87DMA%E4%BC%A0%E8%BE%93%E5%88%B0%E6%88%91%E4%BB%AC%E8%8A%AF%E7%89%87%E7%9A%84I2S%20fifo%EF%BC%8C%E4%BB%8E%E8%80%8C%E8%8A%82%E7%9C%81%E6%8E%89%E6%95%B0%E6%8D%AE%E5%9C%A8%E4%B8%8A%E5%B1%82%E3%80%81%E5%BA%95%E5%B1%82%E4%B9%8B%E9%97%B4%E6%9D%A5%E5%9B%9E%E8%B0%83%E7%94%A8%E7%9A%84%E6%97%B6%E9%97%B4%E3%80%82%3CBR%20%2F%3E%E8%BF%99%E5%B0%B1%E9%9C%80%E8%A6%81%E6%88%91%E4%BB%ACI2S%E8%BF%99%E8%BE%B9%E6%94%AF%E6%8C%81%E9%80%9A%E8%BF%87DMA%E7%9B%B4%E6%8E%A5%E4%BB%8E%E4%B8%80%E6%AE%B5%E7%89%A9%E7%90%86%E5%86%85%E5%AD%98%E6%8B%BF%E6%95%B0%E6%8D%AE%E3%80%82%3CBR%20%2F%3E%E4%B8%BA%E4%BA%86%E8%BE%83%E4%B8%BA%E6%96%B9%E4%BE%BF%E7%9A%84%E5%AE%9E%E7%8E%B0%E8%BF%99%E4%B8%80%E5%8A%9F%E8%83%BD%EF%BC%8C%E9%80%9A%E8%BF%87%E5%AF%B9ALSA%E6%9E%B6%E6%9E%84%E7%9A%84%E5%88%86%E6%9E%90%EF%BC%8C%E6%88%91%E4%BF%9D%E7%95%99%E4%BA%86%E6%88%91%E4%BB%AC%E6%95%B4%E4%B8%AAASoC%E4%BB%A3%E7%A0%81%E7%9A%84%E6%9E%B6%E6%9E%84%EF%BC%8C%E5%8F%AA%E6%98%AF%E4%B8%8D%E8%AE%A9DMA%E4%BB%8E%E5%8E%9F%E6%9D%A5%E7%9A%84mmap%E7%9A%84%E5%9C%B0%E5%9D%80%E6%8B%BF%E6%95%B0%E6%8D%AE%EF%BC%8C%E8%80%8C%E6%98%AF%E4%BB%8E%E6%88%91%E8%87%AA%E5%B7%B1%E5%88%86%E9%85%8D%E7%9A%84DMA%E5%86%85%E5%AD%98%E4%B8%AD%E6%8B%BF%E6%95%B0%E6%8D%AE%E3%80%82%3CBR%20%2F%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-size%3A%2012pt%3B%22%3E258%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20uint8_t%20*wbuf%3B%3CBR%20%2F%3E259%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20uint8_t%20*index1%3B%3CBR%20%2F%3E261%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20wbuf%20%3D%20dma_alloc_coherent(NULL%2C%200x10000%2C%20%26amp%3B%3CSTRONG%20style%3D%22color%3A%20red%3B%22%3Ewpaddr%3C%2FSTRONG%3E%2C%20GFP_DMA)%3B%3CBR%20%2F%3E265%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20for%20(i%3D0%3B%20i%26lt%3B0x10000%3B%20i%2B%2B)%20%7B%3CBR%20%2F%3E269%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20*(wbuf%20%2B%20i)%20%3D%20wav_data%5Bi%5D%3B%3CBR%20%2F%3E273%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3CBR%20%2F%3E333%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20iprtd-%26gt%3Bdesc%20%3D%20chan-%26gt%3Bdevice-%26gt%3Bdevice_prep_dma_cyclic(%3CBR%20%2F%3E334%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20chan%2C%20%3CSTRONG%20style%3D%22color%3A%20red%3B%22%3Ewpaddr%3C%2FSTRONG%3E%2C%3CBR%20%2F%3E335%20%2F%2F%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20chan%2C%20dma_addr%2C%3CBR%20%2F%3E336%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20iprtd-%26gt%3Bperiod_bytes%20*%20iprtd-%26gt%3Bperiods%2C%3CBR%20%2F%3E337%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20iprtd-%26gt%3Bperiod_bytes%2C%3CBR%20%2F%3E338%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20substream-%26gt%3Bstream%20%3D%3D%20SNDRV_PCM_STREAM_PLAYBACK%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%3F%3CBR%20%2F%3E339%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20DMA_TO_DEVICE%20%3A%20DMA_FROM_DEVICE)%3B%3CBR%20%2F%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%E4%BB%A3%E7%A0%81%E5%AE%9E%E7%8E%B0%E4%B8%8A%3C%2FSPAN%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%EF%BC%8C%3C%2FSPAN%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%E5%AE%9E%E9%99%85%E4%B8%8A%E6%98%AF%E6%AF%94%E8%BE%83%E7%AE%80%E5%8D%95%E7%9A%84%3C%2FSPAN%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%EF%BC%8C%E5%8F%AF%E4%BB%A5%E5%A5%97%E7%94%A8%E4%BB%A5%E5%89%8D%E5%81%9A%E8%BF%87%E7%9A%84%3C%2FSPAN%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3Edma_m2m%3C%2FSPAN%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%E7%9A%84%E9%83%A8%E5%88%86%E4%BB%A3%E7%A0%81%E3%80%82%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%3C%2FSPAN%3E%20%3C%2FP%3E%3CP%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%E7%8E%B0%E5%9C%A8%E6%88%91%E4%BB%AC%E8%A6%81%E6%8B%BF%E4%B8%80%E4%BA%9B%3C%2FSPAN%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3Ewav%3C%2FSPAN%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%E9%87%8C%E9%9D%A2%E7%9A%84%3C%2FSPAN%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3Eaudio%3C%2FSPAN%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%E6%95%B0%E6%8D%AE%E3%80%82%3C%2FSPAN%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%3CBR%20%2F%3Elinux%3C%2FSPAN%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%E5%8F%AF%E4%BB%A5%E7%94%A8%3C%2FSPAN%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E16%3C%2FSPAN%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%E8%BF%9B%E5%88%B6%E7%9A%84%E6%96%B9%E6%B3%95%E8%AF%BB%3C%2FSPAN%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3Ewav%3C%2FSPAN%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%E9%87%8C%E9%9D%A2%E7%9A%84%E6%95%B0%E6%8D%AE%3C%2FSPAN%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%3A%3CBR%20%2F%3Ehexdump%20-n%2065700%20-C%20audio44k16S.wav%20%26gt%3B%20wav_data_44100_s16_stereo.h%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%E5%B0%86%3C%2FSPAN%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3Eaudio44k16S.wav%20%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%3C%2FSPAN%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%E9%87%8C%E9%9D%A2%E7%9A%84%3C%2FSPAN%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3Eaudio%3C%2FSPAN%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%E6%95%B0%E6%8D%AE%E7%94%A8%3C%2FSPAN%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E16%3C%2FSPAN%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%E8%BF%9B%E5%88%B6%E7%9A%84%E5%BD%A2%E5%BC%8F%E4%BF%9D%E5%AD%98%E5%88%B0%3C%2FSPAN%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3Ewav_data_44100_s16_stereo.h%3C%2FSPAN%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%E8%BF%99%E4%B8%AA%E6%96%87%E4%BB%B6%E9%87%8C%E3%80%82%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%3C%2FSPAN%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%E7%84%B6%E5%90%8E%E6%88%91%E4%BB%AC%E8%A6%81%E7%BC%96%E8%BE%91%E8%BF%99%E4%B8%AA%E5%A4%B4%E6%96%87%E4%BB%B6%E9%87%8C%E7%9A%84%3C%2FSPAN%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3Eaudio%3C%2FSPAN%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%E6%95%B0%E6%8D%AE%3C%2FSPAN%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%EF%BC%8C%3C%2FSPAN%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%E5%8E%9F%E6%95%B0%E6%8D%AE%E6%98%AF%E8%BF%99%E7%A7%8D%E6%A0%BC%E5%BC%8F%E7%9A%84%3C%2FSPAN%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%EF%BC%9A%3C%2FSPAN%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%3CBR%20%2F%3E00000000%26nbsp%3B%2052%2049%2046%2046%2012%2063%200c%2000%26nbsp%3B%2057%2041%2056%2045%2066%206d%2074%2020%26nbsp%3B%20%7CRIFF.c..WAVEfmt%20%7C%3CBR%20%2F%3E00000010%26nbsp%3B%2012%2000%2000%2000%2001%2000%2002%2000%26nbsp%3B%2044%20ac%2000%2000%2010%20b1%2002%2000%26nbsp%3B%20%7C........D.......%7C%3CBR%20%2F%3E00000020%26nbsp%3B%2004%2000%2010%2000%2000%2000%2066%2061%26nbsp%3B%2063%2074%2004%2000%2000%2000%20b5%2018%26nbsp%3B%20%7C......fact......%7C%3CBR%20%2F%3E00000030%26nbsp%3B%2003%2000%2064%2061%2074%2061%20d4%2062%26nbsp%3B%200c%2000%2058%2001%20f0%2000%2098%2001%26nbsp%3B%20%7C..data.b..X.....%7C%3CBR%20%2F%3E00000040%26nbsp%3B%2056%2001%203d%2001%201e%2001%20d0%2000%26nbsp%3B%20ae%2000%2081%2000%2035%2000%2040%2000%26nbsp%3B%20%7CV.%3D.........5.%40.%7C%3CBR%20%2F%3E00000050%26nbsp%3B%20dd%20ff%20f7%20ff%2090%20ff%209f%20ff%26nbsp%3B%201d%20ff%2054%20ff%20bb%20fe%2018%20ff%26nbsp%3B%20%7C..........T.....%7C%3CBR%20%2F%3E00000060%26nbsp%3B%2061%20fe%201e%20ff%20e7%20fd%205e%20ff%26nbsp%3B%20e4%20fd%2023%2000%2039%20fe%20ee%2000%26nbsp%3B%20%7Ca.....%5E...%23.9...%7C%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%E6%88%91%E4%BB%AC%E8%A6%81%E6%8A%8A%E5%AE%83%E8%BD%AC%E6%8D%A2%E6%88%90%E7%AC%A6%E5%90%88%E6%88%91%E4%BB%AC%E8%A6%81%E6%B1%82%E7%9A%84%E8%BF%99%E7%A7%8D%E5%BD%A2%E5%BC%8F%3C%2FSPAN%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%EF%BC%9A%3C%2FSPAN%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%3CBR%20%2F%3E%20%2C0x63%20%2C0xf0%20%2C0x0f%20%2C0xf0%20%2C0x7f%20%2C0xf1%20%2C0x21%20%2C0xf1%26nbsp%3B%20%2C0x89%20%2C0xf3%20%2C0xef%20%2C0xf2%20%2C0x9d%20%2C0xf5%20%2C0x8c%20%2C0xf4%3CBR%20%2F%3E%20%2C0x5f%20%2C0xf7%20%2C0xd3%20%2C0xf5%20%2C0x8c%20%2C0xf8%20%2C0x08%20%2C0xf7%26nbsp%3B%20%2C0x4c%20%2C0xf9%20%2C0x01%20%2C0xf8%20%2C0x74%20%2C0xf9%20%2C0x2e%20%2C0xf8%3CBR%20%2F%3E%2C0x1c%20%2C0xf9%20%2C0x15%20%2C0xf8%20%2C0x09%20%2C0xf9%20%2C0x82%20%2C0xf7%26nbsp%3B%20%2C0x45%20%2C0xf9%20%2C0xd1%20%2C0xf6%20%2C0x0b%20%2C0xf9%20%2C0x1e%20%2C0xf6%3CBR%20%2F%3E%20%2C0xce%20%2C0xf8%20%2C0xbe%20%2C0xf5%20%2C0xd7%20%2C0xf8%20%2C0x9a%20%2C0xf5%26nbsp%3B%20%2C0xa8%20%2C0xf9%20%2C0xc7%20%2C0xf5%20%2C0xe0%20%2C0xfa%20%2C0x3e%20%2C0xf6%3CBR%20%2F%3E%20%2C0x25%20%2C0xfc%20%2C0x44%20%2C0xf7%20%2C0x44%20%2C0xfd%20%2C0xa2%20%2C0xf8%26nbsp%3B%20%2C0x9a%20%2C0xfe%20%2C0xea%20%2C0xf9%20%2C0x25%20%2C0x00%20%2C0x94%20%2C0xfb%3CBR%20%2F%3E%20%2C0x16%20%2C0x02%20%2C0xec%20%2C0xfc%20%2C0xcb%20%2C0x03%20%2C0xfe%20%2C0xfd%26nbsp%3B%20%2C0xef%20%2C0x04%20%2C0xa5%20%2C0xfe%20%2C0x45%20%2C0x05%20%2C0x0b%20%2C0xff%3CBR%20%2F%3E%2C0x3b%20%2C0x05%20%2C0x24%20%2C0xff%20%2C0x34%20%2C0x05%20%2C0x94%20%2C0xff%26nbsp%3B%20%2C0x06%20%2C0x05%20%2C0x13%20%2C0x00%20%2C0x6c%20%2C0x04%20%2C0x82%20%2C0x00%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%3C%2FSPAN%3E%20%3C%2FP%3E%3CP%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%E8%BF%99%E9%87%8C%E6%9C%89%E4%B8%80%E4%B8%AA%E6%AF%94%E8%BE%83%E5%A5%BD%E7%9A%84%E6%96%B9%E6%B3%95%3C%2FSPAN%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%EF%BC%8C%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%3C%2FSPAN%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3EVIM%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%E5%9E%82%E7%9B%B4%E7%BC%96%E8%BE%91%E7%9A%84%E6%96%B9%E6%B3%95%E8%BE%83%E4%B8%BA%E8%BD%BB%E6%9D%BE%E7%9A%84%E5%AE%9E%E7%8E%B0%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3Evim%E5%9E%82%E7%9B%B4%E7%BC%96%E8%BE%91%EF%BC%9A%3CBR%20%2F%3Ectrl%2Bv%20%E7%84%B6%E5%90%8E%E4%B8%8A%E4%B8%8B%E5%B7%A6%E5%8F%B3%E7%A7%BB%E5%8A%A8%E9%80%89%E4%B8%AD%EF%BC%8CD%E5%88%A0%E9%99%A4%E9%80%89%E4%B8%AD%E7%9A%84%E3%80%82%3CBR%20%2F%3Ectrl%2Bv%20%E9%80%89%E4%B8%AD%EF%BC%8C%20shift%2Bi%20%E5%8F%AF%E4%BB%A5%E5%9C%A8%E9%80%89%E4%B8%AD%E7%9A%84%E5%9C%B0%E6%96%B9%E5%8A%A0%E5%85%A5%E6%83%B3%E6%8F%92%E5%85%A5%E7%9A%84%E5%AD%97%E7%AC%A6%E3%80%82%3CBR%20%2F%3E%E5%B0%86%E7%BC%96%E8%BE%91%E8%BF%87%E7%9A%84%E6%95%B0%E6%8D%AE%E6%94%BE%E5%88%B0uint8_t%20wav_data%5B%5D%EF%BC%8C%E8%B5%8B%E5%80%BC%E7%BB%99wbuf%2Cwbuf%E5%AF%B9%E5%BA%94%E7%9A%84%E7%89%A9%E7%90%86%E5%9C%B0%E5%9D%80%3C%2FSPAN%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22color%3A%20red%3B%20font-size%3A%2012pt%3B%22%3Ewpadd%3C%2FSPAN%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20color%3A%20red%3B%20font-size%3A%2012pt%3B%22%3Er%3C%2FSPAN%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%E4%B8%AD%E7%9A%84%E6%95%B0%E6%8D%AE%EF%BC%8C%E5%B0%B1%E6%98%AF%E4%B8%8A%E9%9D%A2wav%E4%B8%AD%E7%9A%84audio%E6%95%B0%E6%8D%AE%E3%80%82%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%3CSPAN%20lang%3D%22EN%22%20style%3D%22font-size%3A%2012pt%3B%22%3Ewbuf%20%3D%20dma_alloc_coherent(NULL%2C%200x10000%2C%20%26amp%3B%3CSPAN%20style%3D%22color%3A%20red%3B%22%3Ewpaddr%3C%2FSPAN%3E%2C%20GFP_DMA)%3B%3C%2FSPAN%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%E4%B8%AD%E7%9A%840x10000%3D1024*64%E6%98%AF%E6%88%91%E4%BB%AC%E5%88%86%E9%85%8D%E7%9A%84dma%E5%86%85%E7%BA%AF%E7%9A%84%E5%A4%A7%E5%B0%8F%EF%BC%8C%E6%88%91%E4%BB%ACsdma%E6%98%AF%E6%A0%B9%E6%8D%AE%E4%BB%A5%E4%B8%8B%E5%A4%A7%E5%B0%8F%E4%BC%A0%E8%BE%93%E6%95%B0%E6%8D%AE%E7%9A%84%EF%BC%9A%3CBR%20%2F%3Eiprtd-%26gt%3Bperiod_bytes%20%3D%2021844%2C%20iprtd-%26gt%3Bperiods%20%3D%203%20%3C%2FSPAN%3E%3CSPAN%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%2F%2F21844*3%3D65532%3D%200xfffc%3C%2FSPAN%3E%3CSPAN%20lang%3D%22ZH-CN%22%20style%3D%22font-family%3A%20%E5%AE%8B%E4%BD%93%3B%20font-size%3A%2012pt%3B%22%3E%3CBR%20%2F%3E%E8%BF%99%E6%A0%B7%E5%AE%9E%E9%99%85%E4%B8%8ADMA%E6%98%AF%E4%B8%8D%E5%81%9C%E7%9A%84%E5%88%B7%E6%88%91%E4%BB%AC%E5%88%86%E9%85%8D%E7%9A%84%E5%86%85%E5%AD%98%E9%87%8C%E7%9A%84%E6%95%B0%E6%8D%AE%EF%BC%8C%E5%9B%A0%E4%B8%BA%E6%88%91%E4%BB%AC%E6%B2%A1%E6%9C%89%E6%9B%B4%E6%96%B0DMA%E5%86%85%E5%AD%98%E9%87%8C%E7%9A%84%E6%95%B0%E6%8D%AE%EF%BC%8C%E6%89%80%E4%BB%A5%E5%90%AC%E5%88%B0%E7%9A%84%E6%98%AF%E4%B8%8D%E6%96%AD%E9%87%8D%E5%A4%8D%E6%92%AD%E6%94%BE%E7%9A%84%E5%A3%B0%E9%9F%B3%E7%89%87%E6%AE%B5%E3%80%82%3CBR%20%2F%3E%E5%88%9A%E5%BC%80%E5%A7%8B%E6%97%B6%EF%BC%8C%E6%88%91%E5%90%AC%E8%BF%99%E4%B8%AA%E7%89%87%E6%AE%B5%EF%BC%8C%E5%8F%91%E7%8E%B0%E7%89%87%E6%AE%B5%E4%B9%8B%E9%97%B4%E6%9C%89%E8%BE%83%E4%B8%BA%E6%98%8E%E6%98%BE%E7%9A%84pop%E9%9F%B3%EF%BC%8C%E8%BF%99%E6%98%AF%E7%94%B1%E4%BA%8E%E6%88%91%E6%88%AA%E5%8F%96%E7%9A%84%E6%98%AF%E4%B8%80%E9%A6%96%E9%9F%B3%E4%B9%90%E5%BC%80%E5%A7%8B%E7%9A%84%E9%83%A8%E5%88%86%EF%BC%8C%E5%8C%85%E5%90%AB%E4%BA%86wav%E5%8C%85%E5%A4%B4%E6%95%B0%E6%8D%AE%EF%BC%8C%E8%BF%99%E4%B8%8D%E6%98%AF%E9%9F%B3%E4%B9%90%E6%95%B0%E6%8D%AE%EF%BC%8C%E5%B0%86%E8%BF%99%E4%B8%AA%E5%8E%BB%E9%99%A4%E5%B0%B1%E5%8F%AF%E4%BB%A5%E4%BA%86%E3%80%82%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E
无评分
版本历史
最后更新:
‎12-07-2014 10:59 PM
更新人: