float97
驱动牛犊
驱动牛犊
  • 注册日期2002-06-06
  • 最后登录2005-03-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:902回复:1

20分问一个可能是很弱但是很关键的问题

楼主#
更多 发布于:2003-09-13 18:10
各位大侠,问一个可能是很弱但是很关键的问题:

当主机发来要求描述符的命令时,到底是(1)马上应答然后在接收中断里发送其余的数据,还是(2)先设置发送标志位,然后等待接收中断,等到中断来了之后再开始发送所有的描述符?

我用的是第一种方式,用Windriver编了驱动,可以读写一些数据,但是经常死机。我自己感觉可能是这种方式不对,不知哪位大侠能给一个清晰的解释,20分感谢!

附件是我的C程序和原理图。图中有些错误,实际上dma管脚接了高电平,SUSPEND接了地,永不挂起。
附件名称/大小 下载次数 最后更新
2003-09-13_TestD12.zip (42KB)  0
我是学生
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-09-13 23:40
你的马上应答是什么意思?
控制传输必须完成数据阶段后才能是握手阶段,不能把最后两个步骤反过来的,当你收到setup包时,会有第一个setup中断产生,在这个中断里尼把8字节的setup包读出来并根据要求进行数据阶段的操作,如果主机收到数据就会有ep0tx中断,如果之前你没有把描述符发完,可以在这个中断里接着发,如果发玩了就直接给主机一个空包表示数据阶段结束即可。
游客

返回顶部