[ZLG-ARM] 求助LPC2378 GPDMA的应用问题

[复制链接]
 楼主| alphal 发表于 2008-6-15 18:14 | 显示全部楼层 |阅读模式
我现在做LPC2378的GPDMA驱动程序,连续地址(即Channel&nbsp;Linked&nbsp;List&nbsp;Item&nbsp;Registers&nbsp;(DMACCxLLI)等于0)时,测试了内存到内存的DMA传输,没有问题.[只发生一次中断就传输完成]<br />现有一个经测试没有问题的SD卡驱动程序,我把这个程序改成用GPDMA实现.<br /><br />初步尝试用GPDMA方式读SD卡,发现程序最多只能读出64byte字节(SD/MMC&nbsp;FIFO的大小),而我希望能读任意字节.感觉对DMA的原理似乎也不太清楚,有些地方比较迷糊,特来请教:<br />1.SD/MMC的FIFO是64byte的连续空间,我配置GPDMA通道的时候,是不是需要用分散地址,即需要配置LLI表?因为读外设的时<br />候,源地址不是连续的,一直都是读一个32byte的数组(half&nbsp;Fifo).<br />2.这个表如何建?好像除第一个Linked&nbsp;List,后面源地址,目标地址,配置都是一样的,那LLI都指向第二个就可以了?<br />3.如果不是用分散地址,GPDMA的中断是每32byte产生(假如brust&nbsp;size配置为32)?中断服务函数中需要进行哪些操作,才能使它能持续的将数据读完?我现在就是只能进中断一次,读出32/64byte,后面的数据没法读完了.<br />4.GPDMA里的brust(并发?)传输和single传输是什么意思?有什么区别?<br />5.burst&nbsp;size什么意思?我用的时候好像配置成8,16,32对传输结果没什么影响,只是TransferSize决定要传多少数据.而且最好配置为外设FIFO的一半,为什么?<br />.........<br /><br />不好意思,比较乱,不懂的地方太多了,总之就是我的GPDMA程序用在SD卡读写的时候出问题了,尤其不知道DMA完成32*N字节的传输是一次搞定还是中断多次,中断函数中如何配置等等....<br /><br />先行谢过,若那位好心人,能提供一点DMA的资料或DMA&nbsp;SD卡驱动程序参考一下最好了,我手头只有一个LPC2378的user&nbsp;manual,比较麻烦,没有的帮忙顶一下也成...
 楼主| alphal 发表于 2008-6-16 16:02 | 显示全部楼层

放了一天了,都没人留下点什么........

自己捧场一下......
ZlGaRm 发表于 2008-6-16 18:13 | 显示全部楼层

alphal

您好!<br />&nbsp;&nbsp;已收到您的短信息,根据公司政策,仅对客户进行技术支持,请您理解。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;By&nbsp;&nbsp;ltt
 楼主| alphal 发表于 2008-6-17 10:30 | 显示全部楼层

ZlGaRm,谢谢您的回复.

首先,我的开发板不是贵公司的,理解你不作答的立场.<br /><br />但有点不适的是,我这里的&quot;诚意请教&quot;在你那里就成为了&quot;寻求技术支持&quot;,蒙上了一层厉害关系.<br />想起QQ里一些好友当初看都是做这行的所以才加的,知道是买开发板板买方案什么的后,都不敢怎么跟他们说话了,想着自己没付费就占用这些技术商人的时间有点不好意思.<br />.........<br /><br />给你发站内短信息,是因为这里是技术交流论坛,你是版主,而且在线,没想过你的真实身份其实是&quot;ZLG公司的技术支持&quot;.<br /><br /><br />如果简单一点,大家有共同的爱好,有一个共同的话题聊聊,也算是一件快事吧...
vimman 发表于 2008-9-4 16:33 | 显示全部楼层

我告诉你

好像有你这个问题,但是你如果把Memory地址放到0x7FD00000开始的8K里面就可以;我搞了一上午DMA&nbsp;SD卡到普通RAM里也不行,DMA根本不响应;后来参考了KEIL的MCI例子,改到0x7FD00000这个地址上就OK了。
vimman 发表于 2008-9-4 16:43 | 显示全部楼层

明白了

看一下系统框图,GPDMA挂在AHB1上面,片内RAM挂在AHB2上面,两者应该不能通过DMA传输,周工也讲了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

112

主题

473

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部