flycat0101
驱动小牛
驱动小牛
  • 注册日期2002-06-24
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1069回复:1

usb写问题求救!(70分,搞定再开帖子给分!)

楼主#
更多 发布于:2003-07-25 14:36
先简单介绍一下我的项目:我是在arm9+USB控制器(这两者已经集成到一起了,具体usb控制器是什么不清楚)进行开发,然后通过函数接口,对MMC卡进行读写(也就是调用它的读写函数就OK了,在Linux系统中这是另外一个驱动程序,他的读写函数可以直接使用)。目前我已经可以正确地从MMC卡中读取数据,但是向MMC中写数据的时候有问题。我Endpoint的FIFO是64Byte
问题现象:
1 在CCS下,向SDRAM写数据。当发出写命令时(比如,向MMC拷贝一个2K的文件),我的USB设备接收到了这个命令,进入数据接收状态,2K的数据文件已经接收到,在改写根目录时(此时,PC机向USB设备写8个逻辑块的数据),只能接收到4个完整的块的数据,然后在接收第5块的时候,只能接收到3个FIFO的数据,然后就“no response”,然后超时,从此我的USB设备就不复存在了。有些时候是4个块多一些就超时了
2 在Linux下,向MMC写数据。每次都只能写入几百个字节的数据就没有反应了“no response”,有些时候是一个块(block),有些时候不到,比如256字节,然后bus hound就显示超时了。
在linux下的问题和CCS下的问题差不多,给我感觉都是写的时间不够用,其实很多时候还没有写到MMC里,只是接收数据的时间(要达到512字节才写入啊)就不够,让我很是郁闷。
大侠们帮我分析分析,哪儿出现了问题。
附上我的接收数据源码!
如果哪位朋友要使用它,可以自由使用,除了写那部分有问题外(也正是我现在的问题),其余都正确!!
附件名称/大小 下载次数 最后更新
2003-07-25_nonisorx.c (10KB)  0
我思,故我在
flycat0101
驱动小牛
驱动小牛
  • 注册日期2002-06-24
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2003-07-25 18:16
已经找到问题了,呵呵
把我的经验也告诉大家:
我优化了CCS下的代码,所以,写也没有问题(现在正听着U盘上的歌呢,呵呵,很爽)
在Linux下,问题出现在MMC的写函数,这个函数耗费了大量的时间。因为这是直接对MMC硬件进行写的,要等待其完成后才能返回。下周准备调用快设备的接口函数(据说有缓冲的,就不用在这儿等其返回状态,然后就可以直接进行我以后数据的接收,应该能够解决问题啦),哈哈哈,可以过一个舒服的的周末啦, :P :P :P

[编辑 -  7/25/03 by  flycat0101]
我思,故我在
游客

返回顶部