TD数据结构定义如下:
General Transfer Descriptor
typedef
struct
_AT91S_UHP_TD {
volatile
unsigned
int
Control
;
volatile
unsigned
int
CBP
;
volatile
unsigned
int
NextTD
;
volatile
unsigned
int
BE
;
}
AT91S_UHP_TD
, *
AT91PS_UHP_TD
;
|
General Transfer Descriptor
Transfers for control, bulk, and interrupt all use the same format for their Transfer Descriptor (TD). This General TD is a 16-byte, host memory structure that must be aligned to a 16-byte boundary.
General Transfer Descriptor Format
|
3
|
|
2
|
2
|
2
|
2
|
2
|
2
|
|
2
|
2
|
1
|
1
|
|
|
|
|
|
|
|
|
|
|
0
|
|
0
|
|
1
|
|
8
|
7
|
6
|
5
|
4
|
3
|
|
1
|
0
|
9
|
8
|
|
|
|
|
|
|
|
|
|
|
3
|
|
0
|
Dword 0
|
CC
|
EC
|
T
|
DI
|
DP
|
R
|
—
| |||||||||||||||||||
Dword 1
|
Current Buffer Pointer (CBP)
| |||||||||||||||||||||||||
Dword 2
|
Next TD (NextTD)
|
0
| ||||||||||||||||||||||||
Dword 3
|
Buffer End (BE)
|
Note
: In Dword0, there are fields that are read/write by the HC. The unused portion of this Dword (indicated by ‘—’ ) must either not be written by Host Controller or must be read, and then written back unmodified. The Host Controller Driver should not modify any portion of the TD while it is accessible to the HC.