链式DMA什么意思
时间:10-02
整理:3721RD
点击:
RT,小白刚入门
链式DMA其结构允许其传输一大片碎片化的存储器中数据,每块存储器访问时无需再次访问DMA寄存器。相当于一个数据链表,链式DMA称为描述符表,表内由若干个描述符组成,每个描述符描述了一块DMA的长度,目的地址和源地址信息等。在进行一次DMA读或写操作时,可通过描述符表连续取得若干块DMA内存信息,保证DMA过程连续不间断的进行,提高效率。
2楼解释的很详细了。链式DMA相当于多个普通DMA连起来跑,简单链式DMA可以通过软件一次性把多次DMA的源地址目的地址数据长度等配置好后,启动DMA完成所有数据传输;复杂点的链式DMA,可以做到先完成一次源地址到目的地址的数据传输后,DMA自动去某个地址空间获取下一次DMA传输需要的源地址目的地址数据长度等信息,然后再次自动启动DMA传输,如此循环
感谢
那块DMA传输,就是对一整块存储空间进行访问,而不是碎片化的存储空间,这样理解多吗
大牛,请教一下,我现在实现的是你说的第一种方式,不会重新启动的。我想问的的是以你的经验,每个描述符对应一个DMA传的的数据量能到多少?我用windriver发的上层,一个描述符只能分配4KB的数据空间,就是一个页。
我怎么记得我做WINDRIVER最大划过1M的空间?划的时候必须设置为物理地址也连续。虚拟地址连续物理地址未必连续。如果物理地址不连续,DMA就错了。
DMA 20年前就是 based on descriptor了。
