ED数据结构,定义如下:
typedef
struct
_AT91S_UHP_ED {
volatile
unsigned
int
Control
;
volatile
unsigned
int
TailP
;
volatile
unsigned
int
HeadP
;
volatile
unsigned
int
NextEd
;
}
AT91S_UHP_ED
, *
AT91PS_UHP_ED
;
|
An Endpoint Descriptor (ED) is a 16-byte, memory resident structure that must be aligned to a 16-byte boundary. The Host Controller traverses lists of EDs and if there are TDs linked to an ED, the Host Controller performs the indicated transfer.
|
3
|
|
|
|
2
|
|
|
|
|
|
|
|
|
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
|
1
|
|
|
|
6
|
|
|
|
|
|
|
|
|
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
|
7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
Dword 0
|
—
|
MPS
|
F
|
K
|
S
|
D
|
EN
|
FA
| ||||||||||||||||||||||
Dword 1
|
TD Queue Tail Pointer (TailP)
|
—
| ||||||||||||||||||||||||||||
Dword 2
|
TD Queue Head Pointer (HeadP)
|
0
|
C
|
H
| ||||||||||||||||||||||||||
Dword 3
|
Next Endpoint Descriptor (NextED)
|
—
|
Notes
:
1.
Fields containing ‘—’ are not interpreted or modified by the Host Controller and are available for use by the Host Controller Driver for any purpose.
2.
Fields containing ‘0’ must be written to 0 by the Host Controller Driver before queued for Host Controller processing. If Host Controller has write access to the field, it will always write the field to 0.