Skip to content

Commit ddf28ed

Browse files
committed
Update usbx device stack
1 parent bc3571f commit ddf28ed

12 files changed

+2391
-564
lines changed

rtos-docs/usbx/usbx-device-stack-1.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ The relationship between the USB layers is as follows:
2929
- Responsive technical support
3030
- Multiple class support
3131
- Multiple class instances
32-
- Integration of classes with ThreadX, FileX, and NetX Duo
32+
- Integration of classes with ThreadX, FileX and NetX Duo
3333
- Support for USB devices with multiple configurations
3434
- Support for USB composite devices
3535
- Support for USB power management

rtos-docs/usbx/usbx-device-stack-2.md

Lines changed: 97 additions & 67 deletions
Large diffs are not rendered by default.

rtos-docs/usbx/usbx-device-stack-3.md

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
---
2-
# Mandatory fields.
32
title: Chapter 3 - Functional Components of USBX Device Stack
43
description: This chapter contains a description of the high performance USBX embedded USB device stack from a functional perspective.
54
---
@@ -11,27 +10,26 @@ This chapter contains a description of the high performance USBX embedded USB de
1110
## Execution Overview
1211

1312
USBX for the device is composed of several components.
14-
15-
- Initialization
16-
- Application interface calls
17-
- USB Device Classes
18-
- USB Device Stack
19-
- Device controller
20-
- VBUS manager
13+
- [Initialization](#initialization)
14+
- [Application interface calls](#application_interface_calls)
15+
- [USB Device Classes](#usb_device_classes)
16+
- [USB Device Stack](#usb_device_stack)
17+
- [USB Device controller](#usb_device_controller)
18+
- [VBUS manager](#vbus_manager)
2119

2220
The following diagram illustrates the USBX Device stack.
2321

24-
![USBX Device Stack](media/usbx-device-stack/usbx-device-stack.png)
22+
![USBX Device Stack](./media/usbx-device-stack/usbx-device-stack.png)
2523

26-
### Initialization
24+
## initialization
2725

2826
In order to activate USBX, the function ***ux_system_initialize*** must be called. This function initializes the memory resources of USBX.
2927

3028
In order to activate USBX device facilities, the function ***ux_device_stack_initialize*** must be called. This function will in turn initialize all the resources used by the USBX device stack such as ThreadX threads, mutexes, and semaphores.
3129

3230
It is up to the application initialization to activate the USB device controller and one or more USB classes. Contrary to the USB host side, the device side can have only one USB controller driver running at any time. When the classes have been registered to the stack and the device controller(s) initialization function has been called, the bus is active and the stack will reply to bus reset and host enumeration commands.
3331

34-
### Application Interface Calls
32+
## application_interface_calls
3533

3634
There are two levels of APIs in USBX.
3735

@@ -40,30 +38,30 @@ There are two levels of APIs in USBX.
4038

4139
Normally, a USBX application should not have to call any of the USB device stack APIs. Most applications will only access the USB Class APIs.
4240

43-
### USB Device Classes
41+
## usb_device_classes
4442

4543
The Class APIs are very specific to each USB class. Most of the common APIs for USB classes provided services such as opening/closing a device and reading from or writing to a device.
4644

47-
#### Storage Class
45+
### Storage Class
4846

4947
The storage class is in charge of answering storage class specific control requests and handling storage class protocol commands. Refer to USB Device Storage Class in Chapter 5 for more information.
5048

51-
#### CDC Class
49+
### CDC Class
5250

5351
The CDC class is in charge of answering CDC class specific control requests and offering ways to communicate with host through data pipes. Following functionalities are supported now:
5452
* CDC-ACM: communicate with host as a serial device
5553
* CDC-ECM: communicate with host as an ethernet device
5654
Refer to USB Device CDC-ACM Class and USB Device CDC-ECM Class in Chapter 5 for more information.
5755

58-
#### HID Class
56+
### HID Class
5957

6058
The HID class is in charge of answering the HID class specific control requests and offering ways to communicate host with HID class specific reports. Refer to USB Device HID Class in Chapter 5 for more information.
6159

62-
#### Custom Class
60+
### Custom Class
6361

6462
For advanced developers, it's possible to create more customized class, to answering customized control requests and handling customized protocol on data pipes. Note such class may also require specific customization on host side, too.
6563

66-
## USB Device Stack
64+
## usb_device_stack
6765
The device stack APIs are responsible for the registration of USBX device components such as classes and the device framework.
6866

6967
### Device Framework
@@ -163,7 +161,7 @@ To support additional languages, simply add the language code double-byte defini
163161
164162
*Developing International Software for Windows 95 and Windows NT, Nadine Kano, Eclipse Foundation Press, Redmond WA*
165163
166-
## Device controller
164+
## usb_device_controller
167165
168166
The device controller driver (DCD) interoperates USB Device Stack operations to hardware actions. Normally, a USBX application should not have to call device controller APIs, except initialization function. When the device controller initialization function is called, the bus is active and the stack will reply to bus reset and host enumeration commands through device controller driver.
169167
@@ -174,7 +172,7 @@ Here are some possible hardware which USB Device Stack can operate on:
174172
* Reneses chip with USB device controller
175173
* Other chip with USB device controller, etc.
176174
177-
## VBUS Manager
175+
## vbus_manager
178176
179177
In most USB device designs, VBUS is not part of the USB Device core but rather connected to an external GPIO, which monitors the line signal.
180178

0 commit comments

Comments
 (0)