|  | 
 
| 在本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的函数,求解答。
 
 | 
 |