TI中文支持网
TI专业的中文技术问题搜集分享网站

am335x gpmc edma 问题

   大家好,这个问题比较急 希望大家帮忙解决下

   我们的应用是: gpmc上挂了一个类似于nor flash的设备, 我采用异步 16dat 非复用  现在可以正常工作, 但

   想用edma来增加性能     现在有几个疑问:

   1 我们的数据线是16bit的, 没看到edma设置位宽的地方, 是acnt吗? 

   2 对于trm里面说的FIFO模式  OPT的FWID字段:

0-7h FIFO Width. Applies if either SAM or DAM is set to constant addressing mode.
0 FIFO width is 8-bit.
1h FIFO width is 16-bit.
2h FIFO width is 32-bit.
3h FIFO width is 64-bit.
4h FIFO width is 128-bit.
5h FIFO width is 256-bit.

   这里的意思是说如果我FWID设置成1, 那么地址增加16bit就回绕,比如我的地址是0, 数据是16bit, 

  那么一次dma应该是递增16bit, 那么下一次的地址就又回绕到0?  我对这个FIFO width不太理解? 

3 因为我们的芯片操作是写16字节(16bit数据线,所以就是写8次) 然后读16字节(读8次)  这导致我的dma不太好配置, 

   是否能弄两个dma通道, 一个write, 一个read, 都设置成A-synchronized且ITCINTEN和TCINTEN使能, 然后两个通道chain一下  

   这样是否可以达到我期望的效果: 每dma进行一次write后会自动触发dma read一次? 

   先谢谢大家了!

rong pong:

没人帮忙吗?  指点一下啦 呵呵 

rong pong:

回复 rong pong:

真没人知道么?  

rong pong:

回复 rong pong:

最后一次求助 谁来帮帮我啊? 

Jian Zhou:

回复 rong pong:

理论上讲,芯片内部EDMA的传输位宽和GPMC外部的位宽没有具体关系吧

rong pong:

回复 Jian Zhou:

终于等到回复了, 先谢谢你  我们gpmc上挂的是16bit数据的设备  dma操作的时候  怎么知道送16bit数据或者取16bit数据呢? 

比如我现在不用dma的代码可能是这样写:

for (i = 0; i < (len>>1); ++i) writew(*((unsigned short *)src+i), dst);

这样读:

for (i = 0; i < (len>>1); ++i) *((unsigned short *)dst+i) = readw(addr);

但是dma操作的时候,如果不告诉它是16bit 它怎么去操作呢? 

lei kou:

回复 rong pong:

你好!我也在做类似的事情,能不能把你的驱动源码发一份给我,我这边的一直调不通,不知道是为什么,你外接的是FPGA吗?

rong pong:

回复 lei kou:

我外接的是加密芯片,处于保密  不能给你 不好意思!

user6200184:

回复 rong pong:

TI社区不行,资料超少,解决问题也不及时

yongqing wang:

回复 user6200184:

你有啥问题可以直接发帖,如果发帖应该都能得到回答,或者官方人员会把问题发到TI的资深人员那里

赞(0)
未经允许不得转载:TI中文支持网 » am335x gpmc edma 问题
分享到: 更多 (0)