嵌入式开发者社区

标题: 音频例程audiolineinsave代码部分求解 [打印本页]

作者: bigrao    时间: 2018-1-25 11:00
标题: 音频例程audiolineinsave代码部分求解
在本SYSBIOS例程中,在音频的输入输出的·task.c文件部分有如下代码:
Cache_inv((void *)rxBufPtr[lastFullRxBuf], AUDIO_BUF_SIZE, Cache_Type_ALLD, TRUE);//INV
// 复制 buffer
memcpy((void *)txBufPtr[lastSentTxBuf],(void *)rxBufPtr[lastFullRxBuf],AUDIO_BUF_SIZE);
Cache_wb((void *)txBufPtr[lastSentTxBuf], AUDIO_BUF_SIZE, Cache_Type_ALLD, TRUE);


注意到有用到cache功能,但是查看工程的map文件,发现并没有用到RAM空间,如下

MEMORY CONFIGURATION

         name            origin    length      used     unused   attr    fill
----------------------  --------  ---------  --------  --------  ----  --------
  IROM                  11700000   00100000  00000000  00100000  R  X
  L3_CBA_RAM      80000000   00020000  00000000  00020000  RW X
  DDR                    c0000000   08000000  014544a0  06babb60  RW X


查看之前基于startware库实现的例程AUDIO_LINE_IN,也没有使用cache缓存,核心代码如下
// 复制 buffer
memcpy((void *)txBufPtr[lastSentTxBuf], (void *)rxBufPtr[lastFullRxBuf], AUDIO_BUF_SIZE);





但是如果尝试将cache功能代码屏蔽掉,只保留复制buffer的代码,SYSBIOS的例程就不能工作了,
对这个现象很奇怪,然后也不是很理解为什么要在SYSBIOS的例程中多加这两个cache的函数,求解答。

作者: 广州创龙廖工    时间: 2018-1-26 20:38
您好,饶工,如之前沟通,请问您对于代码部分,还存在疑问?您的邮件问题,已转发给对应的DSP软件工程师跟进,会尽快给您回复的。
作者: bigrao    时间: 2018-1-29 09:35
广州创龙廖工 发表于 2018-1-26 20:38
您好,饶工,如之前沟通,请问您对于代码部分,还存在疑问?您的邮件问题,已转发给对应的DSP软件工程师跟 ...

感谢廖工的解答,这个跟之前报告的问题没有关系,纯粹是从代码的角度看音频例程。




欢迎光临 嵌入式开发者社区 (https://51ele.net/) Powered by Discuz! X3.4