打印
[ZLG-ARM]

求助LPC2378 GPDMA的应用问题

[复制链接]
2282|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
alphal|  楼主 | 2008-6-15 18:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在做LPC2378的GPDMA驱动程序,连续地址(即Channel Linked List Item Registers (DMACCxLLI)等于0)时,测试了内存到内存的DMA传输,没有问题.[只发生一次中断就传输完成]
现有一个经测试没有问题的SD卡驱动程序,我把这个程序改成用GPDMA实现.

初步尝试用GPDMA方式读SD卡,发现程序最多只能读出64byte字节(SD/MMC FIFO的大小),而我希望能读任意字节.感觉对DMA的原理似乎也不太清楚,有些地方比较迷糊,特来请教:
1.SD/MMC的FIFO是64byte的连续空间,我配置GPDMA通道的时候,是不是需要用分散地址,即需要配置LLI表?因为读外设的时
候,源地址不是连续的,一直都是读一个32byte的数组(half Fifo).
2.这个表如何建?好像除第一个Linked List,后面源地址,目标地址,配置都是一样的,那LLI都指向第二个就可以了?
3.如果不是用分散地址,GPDMA的中断是每32byte产生(假如brust size配置为32)?中断服务函数中需要进行哪些操作,才能使它能持续的将数据读完?我现在就是只能进中断一次,读出32/64byte,后面的数据没法读完了.
4.GPDMA里的brust(并发?)传输和single传输是什么意思?有什么区别?
5.burst size什么意思?我用的时候好像配置成8,16,32对传输结果没什么影响,只是TransferSize决定要传多少数据.而且最好配置为外设FIFO的一半,为什么?
.........

不好意思,比较乱,不懂的地方太多了,总之就是我的GPDMA程序用在SD卡读写的时候出问题了,尤其不知道DMA完成32*N字节的传输是一次搞定还是中断多次,中断函数中如何配置等等....

先行谢过,若那位好心人,能提供一点DMA的资料或DMA SD卡驱动程序参考一下最好了,我手头只有一个LPC2378的user manual,比较麻烦,没有的帮忙顶一下也成...

相关帖子

沙发
alphal|  楼主 | 2008-6-16 16:02 | 只看该作者

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

自己捧场一下......

使用特权

评论回复
板凳
ZlGaRm| | 2008-6-16 18:13 | 只看该作者

alphal

您好!
  已收到您的短信息,根据公司政策,仅对客户进行技术支持,请您理解。
                                         By  ltt

使用特权

评论回复
地板
alphal|  楼主 | 2008-6-17 10:30 | 只看该作者

ZlGaRm,谢谢您的回复.

首先,我的开发板不是贵公司的,理解你不作答的立场.

但有点不适的是,我这里的"诚意请教"在你那里就成为了"寻求技术支持",蒙上了一层厉害关系.
想起QQ里一些好友当初看都是做这行的所以才加的,知道是买开发板板买方案什么的后,都不敢怎么跟他们说话了,想着自己没付费就占用这些技术商人的时间有点不好意思.
.........

给你发站内短信息,是因为这里是技术交流论坛,你是版主,而且在线,没想过你的真实身份其实是"ZLG公司的技术支持".


如果简单一点,大家有共同的爱好,有一个共同的话题聊聊,也算是一件快事吧...

使用特权

评论回复
5
vimman| | 2008-9-4 16:33 | 只看该作者

我告诉你

好像有你这个问题,但是你如果把Memory地址放到0x7FD00000开始的8K里面就可以;我搞了一上午DMA SD卡到普通RAM里也不行,DMA根本不响应;后来参考了KEIL的MCI例子,改到0x7FD00000这个地址上就OK了。

使用特权

评论回复
6
vimman| | 2008-9-4 16:43 | 只看该作者

明白了

看一下系统框图,GPDMA挂在AHB1上面,片内RAM挂在AHB2上面,两者应该不能通过DMA传输,周工也讲了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

112

主题

473

帖子

1

粉丝