USB gadget 驱动开发问题

liuyan20092009 2011-10-26 03:12:13
(1)
·当开发板上的USB口连接到PC-windows( USB驱动为2.0),
提示:“如果您将此USB设备连接到高速USB 2.0端口,可以提高其性能”,
在我的电脑里看不到相应的盘符。
·当开发板上的USB口连接到PC-linux(USB驱动为2.0),不会出现上述问题
--->>我的电脑右键->管理->磁盘管理, 找到没有盘符的盘区,右键建立盘区,
这时我的电脑里就有相应的盘符了,但人看不了,需要格式化。格式化以后,跟
普通U盘没有多大区别了,在Pc-windows-linux都可以正常使用了。
(2)
但在开发板上看这个盘(sdcard)中的内容,原来的内容还有,有一部分没有了,
不能显示在pc上拷进来的文件夹。即出现,pc访问开发板上的数据跟直接在开发板上访问看到的数据不一致。
这样的驱动问题应考虑哪些方面?
...全文
187 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuyan20092009 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 liuyan20092009 的回复:]
引用 6 楼 huntercao 的回复:
引用 3 楼 liuyan20092009 的回复:
1.为什么这个驱动在linux下是正常的?
2.枚举过程有问题,怎么改,主要改哪些部分,给多点提示好吗?


1.可能Linux下设备枚举过程和设备信息校验跟Windows不一样。设备的某些错误在Linux下没问题,但是在Windows下会有问题。
2.建议用bushound,或者是 U……
[/Quote]
---------------------------------------------------------------------------------
在补充一下:
在windows <=4G的SD卡在windows下还是能正确识别的,我用了一个8G的sd卡在windows下就不能正确识别了
liuyan20092009 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 huntercao 的回复:]
引用 3 楼 liuyan20092009 的回复:
1.为什么这个驱动在linux下是正常的?
2.枚举过程有问题,怎么改,主要改哪些部分,给多点提示好吗?


1.可能Linux下设备枚举过程和设备信息校验跟Windows不一样。设备的某些错误在Linux下没问题,但是在Windows下会有问题。
2.建议用bushound,或者是 USB Tracer等工具分析枚举过程,看看是哪……
[/Quote]
---------------------------------------------------------------------------------
Bus Hound 5.00 capture. Complements of www.perisoft.net

Device - Device ID (followed by the endpoint for USB devices)
(6) USB Root Hub
Phase - Phase Type
CTL USB control transfer
DI Data in
Data - Hex dump of the data transferred
Descr - Description of the phase
Cmd... - Position in the captured data


Device Phase Data Description Cmd.Phase.Ofs(rep)
------ ----- -------------------------------------------------- ---------------- ------------------
6.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 1.1.0(2)
6.0 DI 01 01 01 00 .... 1.2.0
6.0 CTL 23 01 10 00 02 00 00 00 CLEAR FEATURE 3.1.0
6.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 4.1.0
6.0 DI 00 01 00 00 .... 4.2.0
6.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 5.1.0(2)
6.0 DI 01 01 00 00 .... 5.2.0
6.0 CTL 23 03 04 00 02 00 00 00 SET FEATURE 7.1.0
6.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 8.1.0
6.0 DI 03 01 10 00 .... 8.2.0
6.0 CTL 23 01 14 00 02 00 00 00 CLEAR FEATURE 9.1.0
6.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 10.1.0(2)
6.0 DI 03 01 00 00 .... 10.2.0
6.0 CTL 23 03 04 00 02 00 00 00 SET FEATURE 12.1.0
6.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 13.1.0
6.0 DI 03 01 10 00 .... 13.2.0
6.0 CTL 23 01 14 00 02 00 00 00 CLEAR FEATURE 14.1.0
6.0 CTL 80 06 00 03 00 00 ff 00 GET DESCRIPTOR 15.1.0
6.0 DI 04 03 09 04 .... 15.2.0
6.0 CTL 80 06 03 03 09 04 ff 00 GET DESCRIPTOR 16.1.0
6.0 DI 1a 03 33 00 32 00 33 00 30 00 32 00 30 00 34 00 ..3.2.3.0.2.0.4. 16.2.0
46 00 36 00 33 00 37 00 34 00 F.6.3.7.4. 16.2.16
6.0 CTL 80 06 00 02 00 00 ff 00 GET DESCRIPTOR 17.1.0
6.0 DI 09 02 23 00 01 01 00 e0 01 03 09 03 09 04 00 00 ..#............. 17.2.0
02 08 06 50 00 07 05 81 02 40 00 00 07 05 01 02 ...P.....@...... 17.2.16
6.0 CTL 80 06 00 06 00 00 0a 00 GET DESCRIPTOR 18.1.0
6.0 DI 0a 06 00 02 00 00 00 40 01 00 .......@.. 18.2.0
6.0 CTL 80 00 00 00 00 00 02 00 GET STATUS 19.1.0(2)
6.0 DI 01 00 .. 19.2.0
6.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 21.1.0
6.0 DI 00 01 03 00 .... 21.2.0
6.0 CTL 23 01 11 00 02 00 00 00 CLEAR FEATURE 22.1.0
6.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 23.1.0(2)
6.0 DI 00 01 01 00 .... 23.2.0
6.0 CTL 23 01 10 00 02 00 00 00 CLEAR FEATURE 25.1.0
6.0 CTL 23 01 01 00 02 00 00 00 CLEAR FEATURE 26.1.0
6.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 27.1.0
6.0 DI 00 01 00 00 .... 27.2.0
6.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 28.1.0
6.0 DI 00 01 00 00 .... 28.2.0
6.0 CTL 80 00 00 00 00 00 02 00 GET STATUS 29.1.0
6.0 DI 01 00 .. 29.2.0
-----------------------------------------------------------------------------
这是我用busbound得到的log信息,没有DO的信息
曹大夯 2011-10-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 liuyan20092009 的回复:]
1.为什么这个驱动在linux下是正常的?
2.枚举过程有问题,怎么改,主要改哪些部分,给多点提示好吗?
[/Quote]

1.可能Linux下设备枚举过程和设备信息校验跟Windows不一样。设备的某些错误在Linux下没问题,但是在Windows下会有问题。
2.建议用bushound,或者是 USB Tracer等工具分析枚举过程,看看是哪一步出错了。

可以考虑将你设备的Device Descriptor, Configuration Descriptor贴出来,大家帮你看看设备是否申明对了。
woshi_ziyu 2011-10-27
  • 打赏
  • 举报
回复
没做过 帮顶
liuyan20092009 2011-10-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 liuyan20092009 的回复:]
引用 2 楼 huntercao 的回复:
你设备的枚举过程有问题。
对Windows来说,看到了USB2.0的设备,但是枚举中发生一些错误,导致USB 2.0不完全工作时,系统会提示你碰到的信息。

调试信息也告诉你,Windows把设备按照Full Speed设备来配置了。


---------------------------------------------------……
[/Quote]
补充一下:用设备上的USB口模拟U盘,来访问设备上的sd卡。
希望达到目标:用usb线连接设备和Pc以后,可以访问设备上的sd卡
注: linux下能正常访问,windows下就出现上述问题。
liuyan20092009 2011-10-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 huntercao 的回复:]
你设备的枚举过程有问题。
对Windows来说,看到了USB2.0的设备,但是枚举中发生一些错误,导致USB 2.0不完全工作时,系统会提示你碰到的信息。

调试信息也告诉你,Windows把设备按照Full Speed设备来配置了。
[/Quote]

--------------------------------------------------------------------------
我有几个问题:
1.为什么这个驱动在linux下是正常的?
2.枚举过程有问题,怎么改,主要改哪些部分,给多点提示好吗?
曹大夯 2011-10-26
  • 打赏
  • 举报
回复
你设备的枚举过程有问题。
对Windows来说,看到了USB2.0的设备,但是枚举中发生一些错误,导致USB 2.0不完全工作时,系统会提示你碰到的信息。

调试信息也告诉你,Windows把设备按照Full Speed设备来配置了。
liuyan20092009 2011-10-26
  • 打赏
  • 举报
回复
补充一下,驱动应用程序运行时提示:g_file_storage gadget: full speed config #1

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧