dma使用的几个概念。burst,burst size,length

一般芯片的dma有基本功能。

1、普通的内存、外设间互传数据,一次性的。

2、支持链表的,美其名曰“scatter”,内核有struct scatter可以参考。

说一下注意点:

 

dma有burst、burst size、transfer的概念:

 

burst:

dma实际上是一次一次的申请总线,把要传的数据总量分成一个一个小的数据块。比如要传64个字节,那么dma内部可能分为2次,一次传 64/2=32个字节,这个2(a)次呢,就叫做burst。这个burst是可以设置的。这32个字节又可以分为32位 * 8或者16位*16来传输。

 

transfer size:

就是数据宽度,比如8位、32位,一般跟外设的FIFO相同。

 

burst size:

就是一次传几个 transfer size.

 

现在我配置数据宽度为32位。一次传8个32位=32个字节。

那么如果总长度为128字节,那么实际dma设置的长度为 128/32 = 4.

 

可能讲的不是很清楚。自己配置一遍就明白了。

你可能感兴趣的:(struct)