阅读:2515回复:6
EZUSB-FX2问题请教?
有个ezusb-fx2的问题请教,某个endpoint配置成autoin=0, interrupt, in, 512, double-buffered, 当我commit a packet to endpoint时,如INPKTEND=0x02, 这个时候操作系统的In事务还没发起,这个数据会丢失吗?如果不丢失,这个时候寄存器EP24FIFOFLGS中该endpoint的EF位会被置上么? 刚做ezusb-fx2的开发,不知道问题有没有描述清楚,还请达人指教!!!多谢了。
|
|
沙发#
发布于:2007-01-31 11:18
不会丢失
标志应该会生效 你可以尝试一下 |
|
板凳#
发布于:2007-01-31 20:15
如果这个时候EF被置上了,那通过什么标志来判断FIFO中的数据又没有被取走?
|
|
地板#
发布于:2007-02-01 11:14
手动提交,不会丢失。不过要在提交后最好重新reset管道,数据如果已经提交,它会自动置位的。你在每次发数据之前可以先判断状态
|
|
地下室#
发布于:2007-02-01 11:33
哦,我现在碰到这样的问题。
EP2FIFOPFH=0x40; assert when <=0; 代码: while(!(EP24FIFOFLGS & 0x04)) { Manual commit the packet; } 如果数据被读走,PF置上,进行操作。但是现在发现数据丢失现象,用catc抓log。发现当In包Interval是4ms时丢包,是2ms是正常。所以比较奇怪,如果数据被读走之后置位就不应该出现这种情况。还请指教!!! |
|
5楼#
发布于:2007-02-01 13:18
问题是:PF 或者 EF 是在 INPKTEND=0x02之后即置,还是在数据取之后置。个人觉得是在INPKTEND之后置,external 读走数据好像ezusb不管。不知道对不对?
|
|
6楼#
发布于:2010-03-16 22:04
EP2FIFOPFH 设置Programable Flag标志的时候,有一位使阈值包含没有传输的包的数目,这个应该有帮助。
|
|