richardvip
驱动牛犊
驱动牛犊
  • 注册日期2007-06-04
  • 最后登录2009-04-02
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望19点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
阅读:1504回复:0

向U盘复制大文件失败

楼主#
更多 发布于:2007-07-28 10:25
          我现在作的U盘基本功能已经实现,但是当我将一个794K的文本文件存入U盘时,会提示“无法复制1.txt:由于I/O设备错误,无法运行此项请求”,之前调试时,也曾碰见类似的错误,我最后是调整主端点的发送数据函数解决的,可是这次是怎么错的呢,还请各位高手帮助。
      另外,我使用的是D12,它的主端点有两个缓冲区,都是64字节,在调试时我一直不明白他的工作机理,主机发送64个字节,设备应答,主机就再发一个OUT包后再发送64个字节,主端点的发送数据中断程序中我是首先判断接收的数据是CBW还是数据,这也相当于接收了64个数据,可是在下面的主端点发送数据程序中经过判断接收的是数据时,在程序中则直接又读取缓冲区的数据(我是参考别人的程序编的),这点我就不明白了,一次主机发送数据的大小是64字节,也就是说中断程序只有64字节的数据可读,可是为什么要这样编程序,我已经试过,如果把后面的读64个字节的程序,去掉,U盘的运行就不正常,无论多大的文件都无法复制,如果加上则当文件大小大于794K时就无法复制(我是用一个大小为794K的文件试的,747K的文件就可以),还请各位高手指教,谢谢
游客

返回顶部