USB Component
Version 5.0
MDK-Professional Middleware for USB Device and Host
General
File System
Graphic
Network
USB
Main Page
Usage and Description
Reference
All
Data Structures
Functions
Variables
Enumerations
Enumerator
Groups
Pages
rl_usbd.h
1
/*------------------------------------------------------------------------------
2
* MDK Middleware - Component ::USB:Device
3
* Copyright (c) 2004-2013 ARM Germany GmbH. All rights reserved.
4
*------------------------------------------------------------------------------
5
* Name: rl_usbd.h
6
* Purpose: USB Device header file
7
* Rev.: V5.04
8
*----------------------------------------------------------------------------*/
9
10
#ifndef __RL_USBD_H__
11
#define __RL_USBD_H__
12
13
#include <stdint.h>
14
#include "usb_cdc.h"
15
#include "usb_msc.h"
16
#include "Driver_USBD.h"
17
18
19
// ==== USB Device Constants and Defines ====
20
22
typedef
enum
{
23
USBD_HID_REQ_EP_CTRL = 0,
24
USBD_HID_REQ_EP_INT,
25
USBD_HID_REQ_PERIOD_UPDATE
26
} USBD_HID_REQ_t;
27
28
29
// ==== USB Device Structures ====
30
32
typedef
struct
usbd_ep_data_t
{
33
uint8_t *
data
;
34
uint16_t
cnt
;
35
}
usbd_ep_data_t
;
36
38
typedef
struct
usbd_data_t
{
39
uint16_t
device_status
;
40
uint8_t
device_address
;
41
uint8_t
configuration
;
42
uint8_t
interface
;
43
uint32_t
endpoint_mask
;
44
uint32_t
endpoint_halt
;
45
uint32_t
endpoint_stall
;
46
uint8_t
num_interfaces
;
47
uint8_t
high_speed
;
48
uint8_t
zlp
;
49
usbd_ep_data_t
ep0_data
;
50
USB_SETUP_PACKET
setup_packet
;
51
}
usbd_data_t
;
52
54
typedef
struct
usbd_dev_t
{
55
ARM_DRIVER_USBD *
driver
;
56
uint8_t *
alt_setting
;
57
uint8_t *
ep0_buf
;
58
usbd_data_t
*
data_ptr
;
59
uint8_t
bmattributes
;
60
uint8_t
hs
;
61
uint16_t
if_num
;
62
uint8_t
ep_num
;
63
uint8_t
max_packet0
;
64
}
const
usbd_dev_t
;
65
67
typedef
struct
usbd_hid_data_t
{
68
uint8_t
protocol
;
69
bool
data_out_async_req
;
70
uint32_t
data_out_update_req_mask
;
71
uint8_t *
ptr_data_out
;
72
volatile
uint16_t
data_out_to_send_len
;
73
uint16_t
data_out_sent_len
;
74
bool
data_out_end_with_short_packet
;
75
uint8_t *
ptr_data_in
;
76
uint16_t
data_in_rece_len
;
77
uint8_t *
ptr_data_feat
;
78
uint16_t
data_feat_rece_len
;
79
uint16_t
polling_count
;
80
}
usbd_hid_data_t
;
81
83
typedef
struct
usbd_hid_t
{
84
uint16_t *
idle_count
;
85
uint16_t *
idle_reload
;
86
uint8_t *
idle_set
;
87
uint8_t *
in_report
;
88
uint8_t *
out_report
;
89
uint8_t *
feat_report
;
90
usbd_hid_data_t
*
data_ptr
;
91
uint8_t
dev_num
;
92
uint8_t
if_num
;
93
uint8_t
ep_int_in
;
94
uint8_t
ep_int_out
;
95
uint16_t
interval
[2];
96
uint16_t
max_packet_size
[2];
97
uint8_t
in_report_num
;
98
uint8_t
out_report_num
;
99
uint16_t
in_report_max_sz
;
100
uint16_t
out_report_max_sz
;
101
uint16_t
feat_report_max_sz
;
102
}
const
usbd_hid_t
;
103
105
typedef
struct
usbd_msc_data_t
{
106
MSC_CBW
cbw
;
107
MSC_CSW
csw
;
108
uint32_t
block
;
109
uint32_t
offset
;
110
uint32_t
length
;
111
bool
mem_ok
;
112
uint8_t
bulk_stage
;
113
uint32_t
bulk_len
;
114
bool
media_ready
;
115
bool
read_only
;
116
uint32_t
memory_size
;
117
uint32_t
block_size
;
118
uint32_t
block_group
;
119
uint32_t
block_count
;
120
uint8_t *
block_buf
;
121
bool
media_ready_ex
;
122
}
usbd_msc_data_t
;
123
125
typedef
struct
usbd_msc_t
{
126
uint8_t *
bulk_buf
;
127
usbd_msc_data_t
*
data_ptr
;
128
uint8_t
dev_num
;
129
uint8_t
if_num
;
130
uint8_t
ep_bulk_in
;
131
uint8_t
ep_bulk_out
;
132
uint16_t
max_packet_size
[2];
133
uint8_t *
inquiry_data
;
134
}
const
usbd_msc_t
;
135
137
typedef
struct
usbd_adc_data_t
{
138
uint16_t
vol_cur
;
139
uint16_t
vol_min
;
140
uint16_t
vol_max
;
141
uint16_t
vol_res
;
142
uint8_t
mute
;
143
uint32_t
volume
;
144
uint16_t
data_out
;
145
uint16_t
data_in
;
146
uint8_t
data_run
;
147
}
usbd_adc_data_t
;
148
150
typedef
struct
usbd_adc_t
{
151
int16_t *
data_buf
;
152
usbd_adc_data_t
*
data_ptr
;
153
uint8_t
dev_num
;
154
uint8_t
cif_num
;
155
uint8_t
sif_num
;
156
uint8_t
ep_iso_out
;
157
uint32_t
cfg_data_freq
;
158
uint32_t
cfg_p_s
;
159
uint32_t
cfg_p_c
;
160
uint32_t
cfg_b_s
;
161
}
const
usbd_adc_t
;
162
164
typedef
struct
usbd_cdc_data_t
{
165
int32_t
data_send_access
;
166
int32_t
data_send_active
;
167
int32_t
data_send_zlp
;
168
int32_t
data_to_send_wr
;
169
int32_t
data_to_send_rd
;
170
uint8_t *
ptr_data_to_send
;
171
uint8_t *
ptr_data_sent
;
172
int32_t
data_read_access
;
173
int32_t
data_receive_active
;
174
int32_t
data_receive_int_access
;
175
int32_t
data_received_pending_pckts
;
176
int32_t
data_no_space_for_receive
;
177
uint8_t *
ptr_data_received
;
178
uint8_t *
ptr_data_read
;
179
int32_t
notify_active
;
180
uint16_t
control_line_state
;
181
CDC_LINE_CODING
line_coding
;
182
}
usbd_cdc_data_t
;
183
185
typedef
struct
usbd_cdc_t
{
186
uint8_t *
send_buf
;
187
uint8_t *
receive_buf
;
188
uint8_t *
notify_buf
;
189
usbd_cdc_data_t
*
data_ptr
;
190
uint8_t
dev_num
;
191
uint8_t
cif_num
;
192
uint8_t
dif_num
;
193
uint8_t
ep_int_in
;
194
uint8_t
ep_bulk_in
;
195
uint8_t
ep_bulk_out
;
196
uint16_t
send_buf_sz
;
197
uint16_t
receive_buf_sz
;
198
uint16_t
max_packet_size
[2];
199
uint16_t
max_packet_size1
[2];
200
}
const
usbd_cdc_t
;
201
203
typedef
struct
usbd_hid_desc_t
{
204
uint8_t *
report_descriptor
;
205
uint16_t
report_descriptor_size
;
206
uint16_t
hid_descriptor_offset
;
207
}
usbd_hid_desc_t
;
208
210
typedef
struct
usbd_desc_t
{
211
uint8_t *
ep0_descriptor
;
212
uint8_t *
device_descriptor
;
213
uint8_t *
device_qualifier_fs
;
214
uint8_t *
device_qualifier_hs
;
215
uint8_t *
config_descriptor_fs
;
216
uint8_t *
config_descriptor_hs
;
217
uint8_t *
other_speed_config_descriptor_fs
;
218
uint8_t *
other_speed_config_descriptor_hs
;
219
uint8_t *
string_descriptor
;
220
}
usbd_desc_t
;
221
222
#endif
USB
Include
rl_usbd.h
Generated on Fri Oct 4 2013 13:44:14 for USB Component by ARM Ltd. All rights reserved.