diff options
| author | sakumisu <[email protected]> | 2024-07-23 20:13:28 +0800 |
|---|---|---|
| committer | sakumisu <[email protected]> | 2024-07-23 20:13:28 +0800 |
| commit | 4c4ee7f0031ffbffb9e684d72d03bdda3c824b99 (patch) | |
| tree | 2caafad57d20a15f9f328e1991b36870b5f23dc0 /docs/source/api | |
| parent | 1c2fd3407a826de56d230508bf4ad3f64f69d7a2 (diff) | |
chore(docs): update rst
Diffstat (limited to 'docs/source/api')
| -rw-r--r-- | docs/source/api/api_device.rst | 13 | ||||
| -rw-r--r-- | docs/source/api/api_host.rst | 20 |
2 files changed, 23 insertions, 10 deletions
diff --git a/docs/source/api/api_device.rst b/docs/source/api/api_device.rst index f5d5be02..49502c15 100644 --- a/docs/source/api/api_device.rst +++ b/docs/source/api/api_device.rst @@ -1,10 +1,10 @@ 设备协议栈 ========================= -设备协议栈主要负责枚举和驱动加载,枚举这边就不说了,驱动加载,也就是接口驱动加载,主要是依靠 `usbd_add_interface` 函数,记录传入的接口驱动保存到链表中,当主机进行类请求时就可以查找链表进行访问了。 +设备协议栈主要负责枚举和驱动加载,枚举这边就不说了,驱动加载,也就是接口驱动加载,主要是依靠 `usbd_add_interface` 函数,用于记录传入的接口驱动并保存到接口数组表,当主机进行类请求时就可以查找接口表进行访问了。 在调用 `usbd_desc_register` 以后需要进行接口注册和端点注册,口诀如下: -- 有多少个接口就调用多少次 `usbd_add_interface`,参数填相关 `xxx_init_intf`, 如果没有支持的,手动创建一个填入 +- 有多少个接口就调用多少次 `usbd_add_interface`,参数填相关 `xxx_init_intf`, 如果没有支持的,手动创建一个 intf 填入 - 有多少个端点就调用多少次 `usbd_add_endpoint`,当中断完成时,会调用到注册的端点回调中。 CORE @@ -38,7 +38,6 @@ CORE .. code-block:: C struct usbd_interface { - usb_slist_t list; usbd_request_handler class_interface_handler; usbd_request_handler class_endpoint_handler; usbd_request_handler vendor_handler; @@ -48,7 +47,6 @@ CORE uint8_t intf_num; }; -- **list** 接口的链表节点 - **class_interface_handler** class setup 请求回调函数,接收者为接口 - **class_endpoint_handler** class setup 请求回调函数,接收者为端点 - **vendor_handler** vendor setup 请求回调函数 @@ -69,6 +67,9 @@ usbd_desc_register - **desc** 描述符的句柄 +.. note:: 当前 API 仅支持一种速度,如果需要更高级的速度切换功能,请开启 CONFIG_USBDEV_ADVANCE_DESC,并且包含了下面所有描述符注册功能 + + usbd_msosv1_desc_register """""""""""""""""""""""""""""""""""" @@ -284,7 +285,7 @@ usbd_msc_sector_read - **sector** 扇区偏移 - **buffer** 存储读取的数据的指针 -- **length** 读取长度,当前为1个扇区的大小 +- **length** 读取长度 usbd_msc_sector_write @@ -298,7 +299,7 @@ usbd_msc_sector_write - **sector** 扇区偏移 - **buffer** 写入数据指针 -- **length** 写入长度,当前为1个扇区的大小 +- **length** 写入长度 UAC ----------------- diff --git a/docs/source/api/api_host.rst b/docs/source/api/api_host.rst index 4fb12f20..9d77441c 100644 --- a/docs/source/api/api_host.rst +++ b/docs/source/api/api_host.rst @@ -49,11 +49,11 @@ CLASS 驱动信息结构体 .. code-block:: C struct usbh_interface { - struct usbh_interface_altsetting altsetting[CONFIG_USBHOST_MAX_INTF_ALTSETTINGS]; - uint8_t altsetting_num; char devname[CONFIG_USBHOST_DEV_NAMELEN]; struct usbh_class_driver *class_driver; void *priv; + struct usbh_interface_altsetting altsetting[CONFIG_USBHOST_MAX_INTF_ALTSETTINGS]; + uint8_t altsetting_num; }; 配置结构体 @@ -76,6 +76,9 @@ hubport 结构体 uint8_t port; /* Hub port index */ uint8_t dev_addr; /* device address */ uint8_t speed; /* device speed */ + uint8_t depth; /* distance from root hub */ + uint8_t route; /* route string */ + uint8_t slot_id; /* slot id */ struct usb_device_descriptor device_desc; struct usbh_configuration config; const char *iManufacturer; @@ -84,6 +87,8 @@ hubport 结构体 uint8_t *raw_config_desc; struct usb_setup_packet *setup; struct usbh_hub *parent; + struct usbh_hub *self; /* if this hubport is a hub */ + struct usbh_bus *bus; struct usb_endpoint_descriptor ep0; struct usbh_urb ep0_urb; usb_osal_mutex_t mutex; @@ -95,17 +100,24 @@ hub 结构体 .. code-block:: C struct usbh_hub { - usb_slist_t list; bool connected; bool is_roothub; uint8_t index; uint8_t hub_addr; - struct usb_hub_descriptor hub_desc; + uint8_t speed; + uint8_t nports; + uint8_t powerdelay; + uint8_t tt_think; + bool ismtt; + struct usb_hub_descriptor hub_desc; /* USB 2.0 only */ + struct usb_hub_ss_descriptor hub_ss_desc; /* USB 3.0 only */ struct usbh_hubport child[CONFIG_USBHOST_MAX_EHPORTS]; struct usbh_hubport *parent; + struct usbh_bus *bus; struct usb_endpoint_descriptor *intin; struct usbh_urb intin_urb; uint8_t *int_buffer; + struct usb_osal_timer *int_timer; }; usbh_initialize |
