完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我现在使用FX3来实现FPGA到上位机的数据传输,在使用2个线程用类似于UVC实例中的乒乓机制传输时没有问题。我看到GPIF II最多支持4个线程,所以想试一下4个线程的数据传输,我使用了下面的状态机进行测试
其中WAIT到TH0的转移条件Buffer_Ready是一个外部输入信号,TH0到TH3是4个线程,我在固件中为每个线程都设置了一个Bulk In endpoint,在测试时发现以下问题: 1.当Buffer_Ready在状态机加载前就为高电平时,整个状态机工作正常,每个线程都能够将数据从GPIF的32位数据输入送到上位机,即选择任意一个Bulk In endpoint都能传输数据; 2.当Buffer_Ready初始时为低电平,满足一定条件后再切换到高电平,这时候发现TH0和TH1对应的Bulk In端点正常,但选择TH2和TH3对应的Bulk In端点,用Control Center点击Transfer data后,显示错误“BULK IN transfer failed with Error Code:997”; 所以我想问一下,造成这种错误的可能的原因是什么?如果我想使用4个线程,当一个线程对应的DMA缓冲区满后切换到下一个线程,应该如何设置转移条件比较合适呢? -FAN |
|
相关推荐
1个回答
|
|
error code 997 一般会在Control center 工具没有成功获取到数据,有可能是对应端点的DMA buffer里面没有数据、,即数据没有提交到对应USB socket。GPIF II 状态机在 DMA 缓冲区边界上进行线程切换,可以计算写入到 DMA 缓冲区的字节数量。当计数达到 DMA 缓冲区的限制时,GPIF II 将切换 GPIF 线程。
|
|
|
|
只有小组成员才能发言,加入小组>>
752个成员聚集在这个小组
加入小组2069 浏览 1 评论
1824 浏览 1 评论
3633 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1760 浏览 6 评论
1509 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
507浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
357浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
409浏览 2评论
357浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
854浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 22:31 , Processed in 1.010035 second(s), Total 81, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号