Select one of the symbols to view example projects that use it.
 
Outline
...
...
...
...
...
...
#define UX_HCD_STM32_H
#include "ux_stm32_config.h"
#define UX_HCD_STM32_CONTROLLER
#define UX_HCD_STM32_MAX_NB_CHANNELS
#define UX_HCD_STM32_NB_ROOT_PORTS
#define UX_HCD_STM32_NO_CHANNEL_ASSIGNED
#define UX_HCD_STM32_CONTROLLER_FLAG_DEVICE_ATTACHED
#define UX_HCD_STM32_CONTROLLER_FLAG_DEVICE_DETACHED
#define UX_HCD_STM32_CONTROLLER_FLAG_SOF
#define UX_HCD_STM32_CONTROLLER_FLAG_TRANSFER_DONE
#define UX_HCD_STM32_CONTROLLER_FLAG_TRANSFER_ERROR
#define UX_HCD_STM32_CONTROLLER_LOW_SPEED_DEVICE
#define UX_HCD_STM32_CONTROLLER_FULL_SPEED_DEVICE
#define UX_HCD_STM32_CONTROLLER_HIGH_SPEED_DEVICE
#define UX_HCD_STM32_MAX_PACKET_COUNT
#define UX_HCD_STM32_ED_STATUS_FREE
#define UX_HCD_STM32_ED_STATUS_ALLOCATED
#define UX_HCD_STM32_ED_STATUS_ABORTED
#define UX_HCD_STM32_ED_STATUS_CONTROL_SETUP
#define UX_HCD_STM32_ED_STATUS_CONTROL_DATA_IN
#define UX_HCD_STM32_ED_STATUS_CONTROL_DATA_OUT
#define UX_HCD_STM32_ED_STATUS_CONTROL_STATUS_IN
#define UX_HCD_STM32_ED_STATUS_CONTROL_STATUS_OUT
#define UX_HCD_STM32_ED_STATUS_BULK_IN
#define UX_HCD_STM32_ED_STATUS_BULK_OUT
#define UX_HCD_STM32_ED_STATUS_PERIODIC_TRANSFER
#define UX_HCD_STM32_AVAILABLE_BANDWIDTH
UX_HCD_STM32_STRUCT
UX_HCD_STM32_ED_STRUCT
#define USBH_PID_SETUP
#define USBH_PID_DATA
_ux_hcd_stm32_controller_disable(UX_HCD_STM32 *);
_ux_hcd_stm32_ed_obtain(UX_HCD_STM32 *);
_ux_hcd_stm32_endpoint_create(UX_HCD_STM32 *, UX_ENDPOINT *);
_ux_hcd_stm32_endpoint_destroy(UX_HCD_STM32 *, UX_ENDPOINT *);
_ux_hcd_stm32_endpoint_reset(UX_HCD_STM32 *, UX_ENDPOINT *);
_ux_hcd_stm32_entry(UX_HCD *, UINT, void *);
_ux_hcd_stm32_frame_number_get(UX_HCD_STM32 *, ULONG *);
_ux_hcd_stm32_initialize(UX_HCD *);
_ux_hcd_stm32_interrupt_handler();
_ux_hcd_stm32_least_traffic_list_get(UX_HCD_STM32 *);
_ux_hcd_stm32_periodic_schedule(UX_HCD_STM32 *);
_ux_hcd_stm32_port_disable(UX_HCD_STM32 *, ULONG);
_ux_hcd_stm32_port_enable(UX_HCD_STM32 *, ULONG);
_ux_hcd_stm32_port_reset(UX_HCD_STM32 *, ULONG);
_ux_hcd_stm32_port_resume(UX_HCD_STM32 *, UINT);
_ux_hcd_stm32_port_status_get(UX_HCD_STM32 *, ULONG);
_ux_hcd_stm32_port_suspend(UX_HCD_STM32 *, ULONG);
_ux_hcd_stm32_power_down_port(UX_HCD_STM32 *, ULONG);
_ux_hcd_stm32_power_on_port(UX_HCD_STM32 *, ULONG);
_ux_hcd_stm32_request_bulk_transfer(UX_HCD_STM32 *, UX_TRANSFER *);
_ux_hcd_stm32_request_control_transfer(UX_HCD_STM32 *, UX_TRANSFER *);
_ux_hcd_stm32_request_periodic_transfer(UX_HCD_STM32 *, UX_TRANSFER *);
_ux_hcd_stm32_request_transfer(UX_HCD_STM32 *, UX_TRANSFER *);
_ux_hcd_stm32_transfer_abort(UX_HCD_STM32 *, UX_TRANSFER *);
#define ux_hcd_stm32_initialize
#define ux_hcd_stm32_interrupt_handler
Files
loading...
SourceVuSTM32 Libraries and Samplesusbxcommon/usbx_stm32_host_controllers/ux_hcd_stm32.h
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/**************************************************************************/ /* */ /* Copyright (c) Microsoft Corporation. All rights reserved. */ /* */ /* This software is licensed under the Microsoft Software License */ /* Terms for Microsoft Azure RTOS. Full text of the license can be */ /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ /* and in the root directory of this software. */ /* */... /**************************************************************************/ ... /**************************************************************************/ /**************************************************************************/ /** */ /** USBX Component */ /** */ /** STM32 Controller Driver */ /** */... /**************************************************************************/ /**************************************************************************/ ... /**************************************************************************/ /* */ /* COMPONENT DEFINITION RELEASE */ /* */ /* ux_hcd_stm32.h PORTABLE C */ /* 6.0 */ /* AUTHOR */ /* */ /* Chaoqiong Xiao, Microsoft Corporation */ /* */ /* DESCRIPTION */ /* */ /* This file contains all the header and extern functions used by the */ /* USBX host STM32 Controller. */ /* */ /* RELEASE HISTORY */ /* */ /* DATE NAME DESCRIPTION */ /* */ /* 05-19-2020 Chaoqiong Xiao Initial Version 6.0 */ /* */... /**************************************************************************/ #ifndef UX_HCD_STM32_H #define UX_HCD_STM32_H #include "ux_stm32_config.h" /* Define STM32 HCD generic definitions. */ #define UX_HCD_STM32_CONTROLLER 6 #ifndef UX_HCD_STM32_MAX_NB_CHANNELS #define UX_HCD_STM32_MAX_NB_CHANNELS 12 #endif /* UX_HCD_STM32_MAX_NB_CHANNELS */ #define UX_HCD_STM32_NB_ROOT_PORTS 1 #define UX_HCD_STM32_NO_CHANNEL_ASSIGNED 0xff #define UX_HCD_STM32_CONTROLLER_FLAG_DEVICE_ATTACHED 0x01 #define UX_HCD_STM32_CONTROLLER_FLAG_DEVICE_DETACHED 0x02 #define UX_HCD_STM32_CONTROLLER_FLAG_SOF 0x04 #define UX_HCD_STM32_CONTROLLER_FLAG_TRANSFER_DONE 0x08 #define UX_HCD_STM32_CONTROLLER_FLAG_TRANSFER_ERROR 0x10 #define UX_HCD_STM32_CONTROLLER_LOW_SPEED_DEVICE 0x20 #define UX_HCD_STM32_CONTROLLER_FULL_SPEED_DEVICE 0x40 #define UX_HCD_STM32_CONTROLLER_HIGH_SPEED_DEVICE 0x80 #define UX_HCD_STM32_MAX_PACKET_COUNT 256 #define UX_HCD_STM32_ED_STATUS_FREE 0x00 #define UX_HCD_STM32_ED_STATUS_ALLOCATED 0x01 #define UX_HCD_STM32_ED_STATUS_ABORTED 0x02 #define UX_HCD_STM32_ED_STATUS_CONTROL_SETUP 0x03 #define UX_HCD_STM32_ED_STATUS_CONTROL_DATA_IN 0x04 #define UX_HCD_STM32_ED_STATUS_CONTROL_DATA_OUT 0x05 #define UX_HCD_STM32_ED_STATUS_CONTROL_STATUS_IN 0x06 #define UX_HCD_STM32_ED_STATUS_CONTROL_STATUS_OUT 0x07 #define UX_HCD_STM32_ED_STATUS_BULK_IN 0x08 #define UX_HCD_STM32_ED_STATUS_BULK_OUT 0x09 #define UX_HCD_STM32_ED_STATUS_PERIODIC_TRANSFER 0x0A /* Define STM32 static definition. */ #define UX_HCD_STM32_AVAILABLE_BANDWIDTH 6000 23 defines /* Define STM32 structure. */ typedef struct UX_HCD_STM32_STRUCT { struct UX_HCD_STRUCT *ux_hcd_stm32_hcd_owner; struct UX_HCD_STM32_ED_STRUCT *ux_hcd_stm32_ed_list; struct UX_HCD_STM32_ED_STRUCT *ux_hcd_stm32_channels_ed[UX_HCD_STM32_MAX_NB_CHANNELS]; ULONG ux_hcd_stm32_nb_channels; UINT ux_hcd_stm32_queue_empty; UINT ux_hcd_stm32_periodic_scheduler_active; ULONG ux_hcd_stm32_controller_flag; HCD_HandleTypeDef *hcd_handle; struct UX_HCD_STM32_ED_STRUCT *ux_hcd_stm32_periodic_ed_head; ...} UX_HCD_STM32; /* Define STM32 ED structure. */ typedef struct UX_HCD_STM32_ED_STRUCT { struct UX_HCD_STM32_ED_STRUCT *ux_stm32_ed_next_ed; struct UX_ENDPOINT_STRUCT *ux_stm32_ed_endpoint; struct UX_TRANSFER_STRUCT *ux_stm32_ed_transfer_request; UCHAR ux_stm32_ed_status; UCHAR ux_stm32_ed_channel; UCHAR ux_stm32_ed_interval_mask; UCHAR ux_stm32_ed_interval_position; ...} UX_HCD_STM32_ED; #define USBH_PID_SETUP 0U #define USBH_PID_DATA 1U /* Define STM32 function prototypes. */ UINT _ux_hcd_stm32_controller_disable(UX_HCD_STM32 *hcd_stm32); UX_HCD_STM32_ED * _ux_hcd_stm32_ed_obtain(UX_HCD_STM32 *hcd_stm32); UINT _ux_hcd_stm32_endpoint_create(UX_HCD_STM32 *hcd_stm32, UX_ENDPOINT *endpoint); UINT _ux_hcd_stm32_endpoint_destroy(UX_HCD_STM32 *hcd_stm32, UX_ENDPOINT *endpoint); UINT _ux_hcd_stm32_endpoint_reset(UX_HCD_STM32 *hcd_stm32, UX_ENDPOINT *endpoint); UINT _ux_hcd_stm32_entry(UX_HCD *hcd, UINT function, VOID *parameter); UINT _ux_hcd_stm32_frame_number_get(UX_HCD_STM32 *hcd_stm32, ULONG *frame_number); UINT _ux_hcd_stm32_initialize(UX_HCD *hcd); VOID _ux_hcd_stm32_interrupt_handler(VOID); UINT _ux_hcd_stm32_least_traffic_list_get(UX_HCD_STM32 *hcd_stm32); UINT _ux_hcd_stm32_periodic_schedule(UX_HCD_STM32 *hcd_stm32); UINT _ux_hcd_stm32_port_disable(UX_HCD_STM32 *hcd_stm32, ULONG port_index); UINT _ux_hcd_stm32_port_enable(UX_HCD_STM32 *hcd_stm32, ULONG port_index); UINT _ux_hcd_stm32_port_reset(UX_HCD_STM32 *hcd_stm32, ULONG port_index); UINT _ux_hcd_stm32_port_resume(UX_HCD_STM32 *hcd_stm32, UINT port_index); ULONG _ux_hcd_stm32_port_status_get(UX_HCD_STM32 *hcd_stm32, ULONG port_index); UINT _ux_hcd_stm32_port_suspend(UX_HCD_STM32 *hcd_stm32, ULONG port_index); UINT _ux_hcd_stm32_power_down_port(UX_HCD_STM32 *hcd_stm32, ULONG port_index); UINT _ux_hcd_stm32_power_on_port(UX_HCD_STM32 *hcd_stm32, ULONG port_index); UINT _ux_hcd_stm32_request_bulk_transfer(UX_HCD_STM32 *hcd_stm32, UX_TRANSFER *transfer_request); UINT _ux_hcd_stm32_request_control_transfer(UX_HCD_STM32 *hcd_stm32, UX_TRANSFER *transfer_request); UINT _ux_hcd_stm32_request_periodic_transfer(UX_HCD_STM32 *hcd_stm32, UX_TRANSFER *transfer_request); UINT _ux_hcd_stm32_request_transfer(UX_HCD_STM32 *hcd_stm32, UX_TRANSFER *transfer_request); UINT _ux_hcd_stm32_transfer_abort(UX_HCD_STM32 *hcd_stm32, UX_TRANSFER *transfer_request); #define ux_hcd_stm32_initialize _ux_hcd_stm32_initialize #define ux_hcd_stm32_interrupt_handler _ux_hcd_stm32_interrupt_handler /* ... */ #endif...
Details
Show:
from
Types: Columns:
This file uses the notable symbols shown below. Click anywhere in the file to view more details.