Universal Serial Bus InterfaceMCF5253 Reference Manual, Rev. 124-144 Freescale SemiconductorFigure 24-65. Software Link Pointers24.11.5.2 Building a Transfer DescriptorBefore a transfer can be executed from the linked list, a dTD must be built to describe the transfer. Use thefollowing procedure for building dTDs.Allocate 8-DWord dTD block of memory aligned to 8-DWord boundaries. Example: bit address 4–0 wouldbe equal to ‘00000’.Write the following fields:1. Initialize first 7 DWords to 0.2. Set the terminate bit to ‘1.’3. Fill in total bytes with transfer size.4. Set the interrupt on complete if desired.5. Initialize the status field with the active bit set to ‘1’ and all remaining status bits set to ‘0.’6. Fill in buffer pointer page 0 and the current offset to point to the start of the data buffer.7. Initialize buffer pointer page 1 through page 4 to be one greater than each of the previous bufferpointer.24.11.5.3 Executing A Transfer DescriptorTo safely add a dTD, the DCD must be follow this procedure which will handle the event where the devicecontroller reaches the end of the dTD list at the same time a new dTD is being added to the end of the list.Determine whether the link list is empty:Check DCD driver to see if pipe is empty (internal representation of linked-list should indicate ifany packets are outstanding).Case 1: Link list is empty1. Write dQH next pointer AND dQH terminate bit to 0 as a single DWord operation.2. Clear active and halt bit in dQH (in case set from a previous error).3. Prime endpoint by writing '1' to correct bit position in ENDPTPRIME.EndpointQHnextcurrentCompleted dTDs Queued dTDsHead Pointer Tail Pointer