Enhanced Direct Memory Access (eDMA)MPC5606S Microcontroller Reference Manual, Rev. 7Freescale Semiconductor 473of bytes to transfer (nbytes), the source size (ssize) and the destination size (dsize). The completion of theminor loop is equal to one iteration of the major loop.5. At the conclusion of the minor loop’s execution, certain fields of the transfer control descriptor arewritten back to the local TCD memory.The process (steps 2-5) is repeated until the outer major loop’s iteration count is exhausted. At that time,additional processing steps are completed, e.g., the optional assertion of an interrupt request signaling thetransfer’s completion, final adjustments to the source and destination addresses, etc. A more detaileddescription of the channel processing is listed in the pseudo-code below. This simplified example isintended to represent basic data transfers. Detailed processing associated with the error handling isomitted./* the given DMAchannel is requesting service by the software assertion of thetcd[channel].start bit, the assertion of an enabled ipd_req from a device, orthe implicit assertion of a channel-to-channel link *//* begin by reading the transfer control descriptor from the local RAMinto the local dma_engine registers */dma_engine = read_from_local_memory [channel];dma_engine.active = 1; /* set active flag */dma_engine.done = 0; /* clear done flag *//* check the transfer control descriptor for consistency */if (dma_engine.config_error == 0) {/ * begin execution of the inner “minor” loop transfers */{/* convert the source transfer size into a byte count */switch (dma_engine.ssize) {case 0: /* 8-bit transfer */src_xfr_size = 1;break;case 1: /* 16-bit transfer */src_xfr_size = 2;break;case 2: /* 32-bit transfer */src_xfr_size = 4;break;case 3: /* 64-bit transfer */src_xfr_size = 8;break;case 4: /* 16-byte burst transfer */src_xfr_size = 16;break;case 5: /* 32-byte burst transfer */src_xfr_size = 32;break;}/* convert the destination transfer size into a byte count */switch (dma_engine.dsize) {case 0: /* 8-bit transfer */dest_xfr_size = 1;break;