打印

不能全部读到

[复制链接]
439|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pangb|  楼主 | 2017-4-16 22:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我采用如下代码(基本按照fifo的例子)实现FIFO Read Transaction,但是发现
1)若FIFO Read执行一次(TC为1280(0x500)),上位机读到1024字节;
2)若FIFO Read执行两次(TC为1280*2(0x500*2)),上位机读到2048字节;
3)若FIFO Read执行三次(TC为1280*3(0x500*3)),上位机读到2560字节;
4)若FIFO Read执行四次(TC为1280*4(0x500*4)),上位机读到3072字节
总是不能全部读到
沙发
zwll| | 2017-4-16 22:02 | 只看该作者
然后呢?你是怎么应对这个的呢

使用特权

评论回复
板凳
pangb|  楼主 | 2017-4-16 22:03 | 只看该作者

关于gpif的决定点,我是判断如果TCExpire为真,就进入IDLE,否则原地跳转到原来的状态

使用特权

评论回复
地板
stly| | 2017-4-16 22:06 | 只看该作者
楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
5
pangb|  楼主 | 2017-4-16 22:08 | 只看该作者

if(in_enable) // if IN transfers are enabled
{
if ( GPIFTRIG & 0x80 ) // if GPIF interface IDLE
{
if ( EXTFIFONOTEMPTY ) // if external FIFO is not empty
{
if ( !( EP24FIFO标志寄存器S & 0x01 ) ) // if EP2 FIFO is not full
{
if(enum_high_speed)
{
SYNCDELAY;
GPIFTCB1 = 0x05;
SYNCDELAY;
GPIFTCB0 = 0x00;
SYNCDELAY;
}
else
{
SYNCDELAY;
GPIFTCB1 = 0x05;
SYNCDELAY;
GPIFTCB0 = 0x00;
SYNCDELAY;
}
Setup_FLOWSTATE_Read(); // setup FLOWSTATE registers for FIFO Read operation
SYNCDELAY;
GPIFTRIG = GPIFTRIGRD | GPIF_EP2; // launch GPIF FIFO READ Transaction to EP2 FIFO
SYNCDELAY;
while( !( GPIFTRIG & 0x80 ) ) // poll GPIFTRIG.7 GPIF Done bit
{
;
}
SYNCDELAY;
}
}
}
}

使用特权

评论回复
6
llljh| | 2017-4-16 22:10 | 只看该作者
上位机进行读的时候,本来就是按照这个方法进行读的,1块满了就开始读了,等到下一块满了再读下一块。

使用特权

评论回复
7
pangb|  楼主 | 2017-4-16 22:12 | 只看该作者
我还有个问题,决定点里的Loop Re-Execute是做什么用的。

使用特权

评论回复
8
pangb|  楼主 | 2017-4-16 22:14 | 只看该作者

比如gpif designer自带的那个Fifo例子,决定点判断TCXpire标志不为真,那就在原来的状态循环。

使用特权

评论回复
9
pengf| | 2017-4-16 22:17 | 只看该作者
这种情况应该选择Re-Execute功能

使用特权

评论回复
10
pangb|  楼主 | 2017-4-16 22:21 | 只看该作者

为什么?

使用特权

评论回复
11
xxrs| | 2017-4-16 22:23 | 只看该作者
因为每次循环都要在FD[15:0]输出数据

使用特权

评论回复
12
pangb|  楼主 | 2017-4-16 22:25 | 只看该作者
但是Fifo例子里没有勾选,是怎么回事

使用特权

评论回复
13
yinxiangh| | 2017-4-16 22:27 | 只看该作者
貌视对的啊

使用特权

评论回复
14
chenjunt| | 2017-4-16 22:29 | 只看该作者
改成slave fifo吧

使用特权

评论回复
15
ousj| | 2017-4-16 22:33 | 只看该作者

嗯,gpif遇到问题解决不了

使用特权

评论回复
16
zyf部长| | 2017-4-16 22:34 | 只看该作者
GPIF 模式,单字节读写,加载固件,CTLx马上全为低电平,为什么?

使用特权

评论回复
17
pangb|  楼主 | 2017-4-16 22:37 | 只看该作者
唉,还是没有什么结果,算了,先结贴吧,多谢大家啦

使用特权

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

本版积分规则

701

主题

7643

帖子

6

粉丝