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 ;
 
Endpoint Descriptor Format
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.