我这里使用c6748做了一个音频降噪和音质增强的算法。现在出现了这样的问题,因为要跑算法所以使能了cache。但是使能之后喇叭的声音就断了。
我的音频传输流是这样的。通过mcasp总线从aic3106采集音频数据,然后经过dsp算法处理后再经过mcasp总线把数据传输出去。没有加算法之前是透传,没有使能cache,我把pc端放的音乐直接从喇叭端发出来没有问题。我的代码和数据段在ddr2上,跑算法会有些迟缓,就把cache打开了。于是出现了上面的问题。
CacheEnableMAR((unsigned int)0xC0001000, (unsigned int)0x08000000);
CacheEnable(L1DCFG_L1DMODE_32K|L1PCFG_L1PMODE_32K|L2CFG_L2MODE_128K);
我在接收和发送中断的时候都CacheWBInvAll();
请问一下ti的工程师,我这里有哪些地方思路有问题。
我的工程代码和数据段都放在ddr里面。
.text:_c_int00 > EntryPoint /* 可执行代码 C 程序入口点*/
.text > DDR2 /* 可执行代码 */
.stack > DDR2 /* 软件系统栈 */
.cio > DDR2 /* C 输入输出缓存 */
".vectors" > Vector /* 中断向量表 */
.const > DDR2 /* 常量 */
.data > DDR2 /* 已初始化全局及静态变量 */
.switch > DDR2 /* 跳转表 */
.sysmem > DDR2 /* 动态内存分配区域 */
.far > DDR2 /* 远程全局及静态变量 */
.args > DDR2
.ppinfo > DDR2
.ppdata > DDR2