您的位置: OpenADSP社区论坛 -> SHARC/TigerSHARC专区 -> 新手上路 -> 21489中的SPORT配置为I2S时对chained DMA的... 
本帖共有897个阅读者
发表帖子 发表投票 回复主题
21489中的SPORT配置为I2S时对chained DMA的使用疑问
liangbread(论坛新手)
liangbread
头衔:社区公民
帮派:无帮无派
帖数:10
金钱:228
积分:17
注册时间:2014/2/18
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
21489中的SPORT配置为I2S时对chained DMA的使用疑问
For the new SPORT external memory functionality, when writing
tests which involve the PCI bit, the external memory address should
be split before writing to the chain pointer register.


上面是关于SPORT中的chained DMA的Chain Pointer Register的使用说明。但是在ADI提供例程中却没有将地址分离开来就赋值入寄存器了,具体见下面例程


rcv1a_tcb[4]  = *pCPSP1A = ((int) rcv1a_tcb  + 7) & 0x7FFFF | (1<<19);

rcv1b_tcb[4]  = *pCPSP1B = ((int) rcv1b_tcb  + 7) & 0x7FFFF | (1<<19);

rcv3a_tcb[4]  = *pCPSP3A = ((int) rcv3a_tcb  + 7) & 0x7FFFF | (1<<19);

rcv3b_tcb[4]  = *pCPSP3B = ((int) rcv3b_tcb  + 7) & 0x7FFFF | (1<<19);

xmit0a_tcb[4] = *pCPSP0A = ((int) xmit0a_tcb + 7) & 0x7FFFF | (1<<19);

xmit0b_tcb[4] = *pCPSP0B = ((int) xmit0b_tcb + 7) & 0x7FFFF | (1<<19);



xmit2a_tcb[4] = *pCPSP2A = ((int) xmit2a_tcb + 7) & 0x7FFFF | (1<<19);

xmit2b_tcb[4] = *pCPSP2B = ((int) xmit2b_tcb + 7) & 0x7FFFF | (1<<19);

对于这个问题感到很困惑,文档中写的跟例程中不一样,所以不知道各位有没有配置chained DMA的经验讨论一下。其实例程也不稳定,有时会出不来声音,或者是声音失真,出现噪音等问题。


这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2014/2/20 12:57:28
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159021 Call, 1 Queries, Processed in 0.031250 second(s),