Burst Count(1 to 255):DMA传输一次数据称为一个burst。此参数定义了DMA每次待传输数据的宽度,单位为字节。传输开始后,DMA应将此参数定义的所有字节全部传输完,才能释放相应的spoke.
Request Per Burst (0 or 1): 若一个DMA任务需要传输的总数据量超过一个burst时,应分成多次发送。当此参数设为0时,所有后续的burst将会在其前一个burst完成后自动进行而不再需要单独的request请求。因此只有在第一个burst开始时需要唯一的request请求。当此参数设为1时,每个burst传输时都需要独立的request请求。
First TD of Channel: 每个DMA通道拥有1个TD或由多个TD构成的链表,此参数为指向单个TD,或多TD链表首个TD的指针。
Preserve TD (0 or 1): 在一个request请求完成后,下一个request请求开始时可能会需要其TD的一些信息。此参数为0不保存TD的实时信息,为1则在每request请求结束后保存TD的所有中间状态及配置信息。
② 任务描述符TD配置
图3-2所示为任务描述符TD配置的主要内容和参数。
Transfer Count(1 to 4095):此参数定义了一个DMA任务需要传输数据包含的总字节数。若待传输单个数据的宽度(由 Burst Count定义)为N,需要传输的数据个数(即burst数量)为M,那么Transfer Count参数应当为M * N。
TD Property:此参数包含多个配置项,如下所示:
Increment Source Address: 在每个burst传输结束后递增源数据地址。
Increment Destination Address: 在每个burst传输结束后递增目的数据地址。在DMA传输任务的源数据或目的数据地址超过1个时,这两个命令项必须被配置。
Swap Enable:此选项只针对PSoC3应用。由于PSoC3的外设寄存器采用小端(Little Endian)格式,而PSoC3应用程序的Keil编译器对存储器内的变量采用大端(Big Endian)格式。因此当DMA在外设寄存器与存储器间传输2字节或4字节数据时,DMA必须交换传输数据的高低字节。
Swap Size:当Swap Enable配置为1时,此选项有效。0表示2字节,1表示4字节。
Auto Executive Next TD:当DMA通道含有多个TD时,须配置此选项。1表示当前TD完成后,指针指向的下一个TD自动执行;0表示当前TD完成后,下一个TD的执行需要另外的独立request请求。
DMA Completion Event:当DMA通道含有多个TD时,须配置此选项。1表示当前TD完成后,指针指向的下一个TD自动执行;0表示当前TD完成后,下一个TD的执行需要另外的独立request请求。
Next TD:指向TD链表中相邻的后续TD的指针。