TI论坛
直播中

辛文斌

7年用户 142经验值
私信 关注
[问答]

6455 ,EMIF,FIFO,请问FIFO should be aligned on 64 byte boundary in EMIFaddress space 是指什么意思?

专家你好
我的现在的硬件为6455接V5FPGA,FIFO接emif的ce5,进行数据传输。fifo宽度为32bit,用for循环读取数据没有问题,但是用EDMA发现数据不对,源数据位123456789……,EDMA数据位1357……。
我参考了6455EMIF的文档,发现EMIF应用EDMA时候的注意问题。以下:

其中,FIFO should be aligned on 64 byte boundary in EMIFaddress space 是指什么意思??我的FIFO使用了整个CE5的8M地址空间,传输数据的大小为768*800byyte??EDMA什么问题或者需要注意的吗

回帖(4)

李萌

2018-8-7 08:05:30
使用EDMA搬移数据时,FIFO模式在6455下是有些问题的,详情可以参考errata。EDMA应该设置成累加模式,然后对应的index都设成0即可。
举报

辛文斌

2018-8-7 08:16:52
引用: dechun28448 发表于 2018-8-7 08:05
使用EDMA搬移数据时,FIFO模式在6455下是有些问题的,详情可以参考errata。EDMA应该设置成累加模式,然后对应的index都设成0即可。

谢谢,我看过勘误表,设置了正确的地址模式,但现在的问题是这样,我的数据大小是768*800byte=614400byte,需要用二维传输,但是现象是我的设置为ACOUNT是1536,BCOUNT是400,CCOUNT是1.源BINDEX为0,目的BINDEX为1536,A模式。可是发现只有前1536个数据是正确的,当我把ACOUNT改为65535时,只有前65535数据是对的,即:只有第一组ACOUNT数据传输正确,其他的BCOUNT-1组数据都不对!请帮忙看一下问题!
举报

张瑞

2018-8-7 08:24:19
引用: yhxcftp 发表于 2018-8-7 08:16
谢谢,我看过勘误表,设置了正确的地址模式,但现在的问题是这样,我的数据大小是768*800byte=614400byte,需要用二维传输,但是现象是我的设置为ACOUNT是1536,BCOUNT是400,CCOUNT是1.源BINDEX为0,目的BINDEX为1536,A模式。可是发现只有前1536个数据是正确的,当我把ACOUNT改为65535时,只有前65535数据是对的,即:只 ...

你用的是A模式,你的目的BINDEX为1536,所以你存的数据应该是不连续的,是隔1536个地址存1536个数,为什么要这样存呢??你会不会把数据块看成了连续存储的所以认为只有前1536个数据是正确的。。。 如果你用的事AB模式的话你这样的参数存储的数据才是连续的。
举报

辛文斌

2018-8-7 08:32:55
引用: jie100 发表于 2018-8-7 08:24
你用的是A模式,你的目的BINDEX为1536,所以你存的数据应该是不连续的,是隔1536个地址存1536个数,为什么要这样存呢??你会不会把数据块看成了连续存储的所以认为只有前1536个数据是正确的。。。 如果你用的事AB模式的话你这样的参数存储的数据才是连续的。 ...

是的,在目的端,我是要连续的存放。A模式,源BINDEX为0,因为每次我都从同一个地址读取。目的BINDEX为1536,因为的ACOUNT的大小是1536byte啊,不是连续存放嘛??
举报

更多回帖

发帖
×
20
完善资料,
赚取积分