以太网调制解调器卡的PCI设备驱动开发与数据传输
1. DMA映射函数与特性
在数据传输中, pci_map_sg 函数用于映射散列表中的条目。该函数的调用形式如下:
num_mapped = pci_map_sg(pdev, sgl, num_entries,
PCI_DMA_TODEVICE);
for (i=0; i<num_mapped; i++) {
/* sg_dma_address(&sgl[i]) returns the bus address
of this entry */
/* sg_dma_len(&sgl[i]) returns the length of this region
*/
}
此函数的第一个和最后一个参数与 pci_map_single() 描述的相同,它返回映射条目的数量。
接下来,总结一下连贯(coherent)和流式(streaming)DMA的特点,以帮助我们为不同的使用场景做出合适的选择:
- 连贯映射 :编码简单,但使用成本高。
- 流式映射 :特点与连贯映射相反。
- 适用场景 :
- 当CPU和I/O设备都需要频繁操作DMA缓冲区时,优先选择连贯映射,例如同步DMA场景,像之前提到的帧缓冲驱动,每次DMA操作都在同一个缓冲区上进行
超级会员免费看
订阅专栏 解锁全文
79

被折叠的 条评论
为什么被折叠?



