完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
谁能给我一个针对214XX系列DSP芯片的DMA例子?用DMA实现内部sram与片外sdram之间数据传输。我调试了很久,不知道我程序哪里出了问题。谢谢
|
|
相关推荐
4个回答
|
|
此时要使用214xx的External Port DMA即可。
下面是一个External Port DMA的例子: while((*pDMAC0)&DMAS){asm("nop;");}; // DMA in progress *pDMAC0 = 0; //Disable External Port CH 0 DMA *pIIEP0 = Internal_buffer; //Internal Memory Source *pEIEP0 = SDRAM_wbuffer; //External Memory Destination *pIMEP0 = 1; //Set up internal modify *pEMEP0 = 1; //Set up external modify *pICEP0 = DMA_LEN; //length of DMA *pECEP0 = DMA_LEN; printf("nWrite DDR DMA start!n"); //Config and enable External Port CH 0 DMA *pDMAC0 = DEN|TRAN|DFLSH|INTIRT; // write to external memory, Internal DMA Completion Interrupt in enabled. |
|
|
|
谢谢frank! 我参考了你的代码,发现我的程序还有些问题。 我需要从外部sdram读数据到内部sram,计算好之后再将结果写到外部sdram。我配置了DDR2,我的代码类似于下面的: DMA_Internal2External(int*Internal_buffer,int *SDRAM_buffer,int DMA_LEN) { while((*pDMAC0)&DMAS){asm("nop;");}; *pDMAC0 = 0; *pIIEP0 = Internal_buffer; *pEIEP0 = SDRAM_buffer; *pIMEP0 = 1; *pEMEP0 = 256; //此处我设置为256 *pICEP0 = DMA_LEN; *pECEP0 = DMA_LEN *pDMAC0 = DEN|TRAN|DFLSH|INTIRT; } DMA_External2Internal(int *SDRAM_rbuffer,int *Internal_buffer,int DMA_LEN) { while((*pDMAC0)&DMAS){asm("nop;")};//代码会在此处死循环,死循环的发生很随机 *pDMAC0 = 0; *pIIEP0 = Internal_buffer; *pEIEP0 = SDRAM_buffer; *pIMEP0 = 1; *pEMEP0 = 1; //此处仍为1 *pICEP0 = DMA_LEN; *pECEP0 = DMA_LEN *pDMAC0 = DEN|DFLSH|INTIRT; } 调用过程类似于: for(i = 0; i < 100; i++) { DMA_External2Internal(); DMA_External2Internal(); 数据计算; DMA_Internal2External(); DMA_Internal2External(); } 我配置了DDR2,不知道是不是这里有问题。 当用DMA将外部数据读入内部时发现,得到的数据里第一个数有时候会读取失败,得到数据0。 另外我用的是adsp-21469评估板 我的问题在哪里呢?谢谢! |
|
|
|
bisong13 发表于 2018-11-29 18:18 附件里,是一个DMA的完整例子,直接可以在ADI的评估板上运行。你可以参考该例程即可。 附件
|
|
|
|
frank 谢谢你 |
|
|
|
只有小组成员才能发言,加入小组>>
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1260 浏览 2 评论
ADP5092 SYS端口为2.09V,但是REG_OUT为0是什么原因?
1861 浏览 1 评论
ad7193差分输入ain1与ain2差是正值时,读到电压与实际值误差小,但为负值值,误差就变的很大
4214 浏览 2 评论
8961 浏览 1 评论
3116 浏览 1 评论
ADC3442采集,分析数据出现有规则毛刺,请问是哪方面的问题啊?
1364浏览 3评论
AD7190状态寄存器一直是0x80,连续转换模式下RDY不拉低
1622浏览 2评论
1568浏览 2评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1260浏览 2评论
1362浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-5 05:45 , Processed in 0.992435 second(s), Total 56, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号