DMA的一些基础问题
来源:互联网 发布:知乎奶酪陷阱白仁荷 编辑:程序博客网 时间:2024/05/29 21:30
1.DMA的硬件使用总线地址而非物理地址,总线地址是从设备(这个设备就是DMA控制器)角度上看到的内
存地址,物理地址是从CPU角度上看到的未经转换的内存地址(包括一些外设的地址)
2.DMA映射包括两个方面的工作:分配一片DMA缓冲区;为这片缓冲区产生“设备”可访问的地址(注意是
设备可访问的地址,DMA传输过程中没有CPU参与,所有地址都是“实”地址)
3.void *dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp);
这个函数的返回值为申请到的DMA缓冲区的虚拟地址。此外,该函数还通过参数handle返回DMA缓冲区的总
线地址。------这个函数返回2个地址,内存的虚拟地址和DMA控制器使用的总线地址,这个地址写入DMA
控制寄存器,别的就不管了。这个是一致性缓冲,流式缓冲的目的一致,手段不同
4.void *pci_alloc_consistent(struct pci_dev *dev, size_t size, dma_addr_t *dma_addrp);
Linux内核还提供了PCI设备申请DMA缓冲区的函数
- DMA的一些基础问题
- 一些基础的问题
- Android的一些基础问题
- JAVA 一些基础的问题
- 请教PCI卡的DMA方式问题
- 关于YL2410 DMA 与SPI 的问题
- STM32 DMA外设地址的计算问题
- STM32F030 ADC1的DMA采样问题
- LPC1788 UART-DMA遇到的问题
- 有关于stm32 串口DMA的问题
- STM32串口DMA容易忽视的问题
- chche与DMA的一致性问题
- STM32F030 ADC1的DMA采样问题
- STM32F030 ADC1的DMA采样问题
- VC一些操作,编译的基础问题
- 有关OpenCV的一些基础问题
- 关于Hibernate的一些基础问题
- 【原创】一些专业基础问题的复习
- 模拟登录获取新浪微博的access_token
- 常用的dos网络命令
- MDX - TOPN AND OTHERS
- Java基础之面向对象(六)--异常、包
- SourceInsight配置
- DMA的一些基础问题
- MPC8313E的ltib安装
- 去掉在模态对话框处理鼠标跟键盘消息时,出现系统提示声音
- 六大设计原则
- ARC之Outlet与弱引用
- 《菜鸟学Android 4》(四) 第一章 搭建Android开发环境-测试Android开发环境
- VC6.0下PHP扩展开发详细教程
- RHEL6.1配置光盘为本地yum源
- 使用 FileNet Content API 开发以内容为核心的流程