kiwkow
驱动牛犊
驱动牛犊
  • 注册日期2006-12-24
  • 最后登录2007-08-23
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望8点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
阅读:2223回复:4

CyUSB,如何实现bulk传输,两次传输间的数据丢失,双线程不起作用

楼主#
更多 发布于:2007-05-13 09:36
  大家好
68013,bulk,in,PC端通过BeginDataXfer\WaitForXfer\FinishDataXfer或者XferData传输,两次传输之间都会有数据丢失。

我使用过乒乓机制,也就是开辟两块空间,读写分别是一个线程,用Critical Section判断资源是否占用,但是还是有数据丢失的现象。

请问各位该做么办呢?
驱网无线,快乐无限
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-05-14 09:42
68013的驱动你只能通过加大单次读写的数据量,将读取到的数据分线程存储,增大设备端FIFO的深度(例如4缓冲)来提高传输速度。
kiwkow
驱动牛犊
驱动牛犊
  • 注册日期2006-12-24
  • 最后登录2007-08-23
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望8点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-05-14 16:49
那为什么会有丢数据的现象呢?按道理我不去取,full信号就会一直高。为什么数据丢失了呢。
驱网无线,快乐无限
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-05-15 09:35
端点满了就写不进去数据了
那些写不进去的数据不就丢失了吗?
除非你是静态数据,并且判断到端点满了就不往里写数据
eebuaa
驱动牛犊
驱动牛犊
  • 注册日期2007-04-05
  • 最后登录2008-01-17
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-06-18 21:57
引用第1楼jinghuiren于2007-05-14 09:42发表的  :
68013的驱动你只能通过加大单次读写的数据量,将读取到的数据分线程存储,增大设备端FIFO的深度(例如4缓冲)来提高传输速度。



那么隐含之意就是,用户如果自己开发驱动, 有可能在内核态实现循环buffer的Bulk传输?  

用一个较大的循环buffer在PC端实现缓冲, 从而避免在计算机负载过重时,用户态应用程序两次调用bulk传输的时间间隔导致的数据丢失?   这个想法可行吗?
游客

返回顶部