硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2104|回复: 2
收起左侧

[RL-USB] 想请教一个关于USB做host时文件读写问题!

[复制链接]

4

主题

37

回帖

49

积分

初级会员

积分
49
发表于 2018-8-20 11:32:44 | 显示全部楼层 |阅读模式
我在用RTOS2的相关组件时,用到了他的USB Host组件,然后我有几个有疑问的地方。
1.[url=]usbStatus[/url] [url=]USBH_Port_Suspend[/url] (uint8_t ctrl, uint8_t port)这个函数的第二个参数port是hub的端口号,这个是怎么来的。调用这个函数的时候挂起其中一个端口号,我的理解是这个hub上有很多个端口(我是在PC机上看到的,一个hub有十几个port),每个端口都对应一个端口号,当外部设备插入时,这个hub就回告诉主机当前设备插入了哪个端口号,这个过程是在枚举的过程中实现的。而我用的STM32的一个host对应的hub只有一个port,所以我们用的时候这个port直接传0就可以了么?还是这个hub有多个port,如果有多个port,我哪里能看到最大port数量。
2.同样,在设备插入host以后,host是怎么分配device的。在这个函数uint8_t USBH_Device_GetController(uint8_t           device)中,我是怎么知道我插入的设备的device是多少?
3.假如我现在用的是大容量存储设备。在插入的设备枚举成功后,会调用这个函数 void [url=]USBH_MSC_Initialize[/url] (uint8_t instance),这个函数的传入参数instance是设备类的实例化编号,我想知道这个编号又是怎么来的,这个instance和device有什么区别。
4.在设备枚举成功后,host是自动从0开始往后分配device的么?还是有什么分配依据。我在用文件系统挂载的时候用的U0:,它是怎么映射到具体的USB设备的。例如:我插入了一个U盘,这时候host认为这个插入的U盘是device0,然后我调用fmount()函数来挂载U0:的时候,它能自动认为U0这个盘符就是对应的device0。
以上就我我在用这整个USB组件时的疑问,希望有大神给我解读下。谢谢啦!


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
发表于 2018-8-21 10:17:03 | 显示全部楼层
RTOS2的HOST我也没有用过,帮顶下吧。
回复

使用道具 举报

4

主题

37

回帖

49

积分

初级会员

积分
49
 楼主| 发表于 2018-8-21 11:02:42 | 显示全部楼层
eric2013 发表于 2018-8-21 10:17
RTOS2的HOST我也没有用过,帮顶下吧。

哈哈,谢谢版主支持。
我根据说明文档和它的应用案例,大致估算,这个文件系统的访问盘符映射的应该就是HOST枚举device后大容量存储类的instance。例如:“U0:”,在它的文件系统底层,应该是对应的就是MSC的instance 0。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 09:21 , Processed in 0.160251 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表