mikal
驱动牛犊
驱动牛犊
  • 注册日期2002-11-19
  • 最后登录2007-10-19
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1886回复:14

d12中如何发18个描述符最后两个描述符?(20分)

楼主#
更多 发布于:2003-12-17 08:56
我的firmware已经设置了地址,但是叫我发18个描述符是,我只能发16个,而剩下的两个如何发?
我的endpoint0 in 没有中断。我该如何办?
Wxy8030
驱动小牛
驱动小牛
  • 注册日期2002-03-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-12-17 09:16
第一个SETUP包,只发16个就可以,,,以后的SETUP,先发16个,下次IN中断来了再发(看书上这么说的),,,

不过我跟你有一个同样的问题――没有IN中断,,,郁闷!
mikal
驱动牛犊
驱动牛犊
  • 注册日期2002-11-19
  • 最后登录2007-10-19
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-12-17 09:20
对啊,就是没有in中断来,以前我的51+d12有in 中断来,
可是我现在用DSP+d12就没有in 中断来了。
mikal
驱动牛犊
驱动牛犊
  • 注册日期2002-11-19
  • 最后登录2007-10-19
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-12-17 09:21
其实第一个SETUP包只发8个就够路了,host只对8个感兴趣。
clementzhao
驱动大牛
驱动大牛
  • 注册日期2003-05-08
  • 最后登录2009-02-20
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-12-17 09:22
没有中断你就直接写缓冲,等host自己去取。
mikal
驱动牛犊
驱动牛犊
  • 注册日期2002-11-19
  • 最后登录2007-10-19
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-12-17 09:31
这样的话就会出现,第一IN 包(host)取的是第二次写的描述符,
因为我不确切(host)的第一个in包和第二in包的时间是多少,还有,
endpoint0 in中断只是d12判断第一in包来取描述符时给的中断,二非(host)给出的。我也试过你的方法,但结果有两个:
1只取到最后两个描述符
2 buffer overun 。
Wxy8030
驱动小牛
驱动小牛
  • 注册日期2002-03-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-12-17 09:36
其实第一个SETUP包只发8个就够路了,host只对8个感兴趣。


我想我就是这个干的啊,,,在读到第一个SETUP包后,就往端点索引1里面写了16个字节的设备描述符,,,,,,然后就等IN中断,,,,,,该死的IN中断就是没有,,,
clementzhao
驱动大牛
驱动大牛
  • 注册日期2003-05-08
  • 最后登录2009-02-20
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-12-17 09:41
你可以先确定第一个包已被取走后再写第二个包嘛。我觉得是你的程序没有写好,不应该没有中断的。
clementzhao
驱动大牛
驱动大牛
  • 注册日期2003-05-08
  • 最后登录2009-02-20
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-12-17 09:42
[quote]其实第一个SETUP包只发8个就够路了,host只对8个感兴趣。


我想我就是这个干的啊,,,在读到第一个SETUP包后,就往端点索引1里面写了16个字节的设备描述符,,,,,,然后就等IN中断,,,,,,该死的IN中断就是没有,,, [/quote]
第一次只发8个是没有问题的。
Wxy8030
驱动小牛
驱动小牛
  • 注册日期2002-03-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-12-17 09:43
我没写两个包啊?

我在读完主机发来的第一个SETUP包后,就把端点索引0的缓冲区清了,还应答了SETUP,然后选择端点索引1,写16个字节,有效缓冲区、、、、、、

这样子会不会有问题?
clementzhao
驱动大牛
驱动大牛
  • 注册日期2003-05-08
  • 最后登录2009-02-20
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-12-17 09:46
详细参考philips例程,一清二楚
mikal
驱动牛犊
驱动牛犊
  • 注册日期2002-11-19
  • 最后登录2007-10-19
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-12-17 10:17
你抓个数据来看看,我估计你的问题是延时问题,因为你的
程序可能是在驱动网下载的,有些地方可能会使你的送描述符
时间太长,结果超过host等待的一定时间。
Wxy8030
驱动小牛
驱动小牛
  • 注册日期2002-03-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-12-17 10:43
呵呵,51的程序都是我自己写的,,,汇编,,,
mailxufeng
驱动牛犊
驱动牛犊
  • 注册日期2003-10-15
  • 最后登录2005-03-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-12-17 13:04
你的应答SETUP包是什么意思?是向D12发送F1应答建立命令吗?对IN和OUT都应答了吗?如果是不应该出现收不到IN中断的现象啊?
mikal
驱动牛犊
驱动牛犊
  • 注册日期2002-11-19
  • 最后登录2007-10-19
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-12-17 16:08
对IN和out都应答了,但是还收不要in中断。
不过我现在找到一个方法,就是不用in中断我也可以把数据发出去。
游客

返回顶部