当前位置:   article > 正文

嵌入式Linux系统中DMA子系统实现

嵌入式Linux系统中DMA子系统实现

1.概述

DMA(Direct Memory Access)是计算机系统中除了CPU之外可以主动访问计算机系统内存的硬件部件,DMA的主要功能搬移内存数据而不用通过CPU核。

有些CPU会设计通用DMA设备给各外设使用,例如嵌入式CPU的一些低速外设,自身没有设计DMA,为了数据传输的高效,则需要借用通用DMA设备。

对于大多数的高速外设,因其业务特性,是会自己实现相应的DMA组件的,以追求业务最佳性能。

针对通用DMA设备,Linux系统中提供了统一的DMA驱动框架——DMA子系统。

2. DMA类型

DMA从不同的角度可以进行不同的分类:

2.1 DMA mapping方式分类

从DMA mapping方式可以分为2类:

  • Coherent DMA(一致性DMA)

    Coherent DMA访问内存地址时不过cache,是cache-coherence设备,采用Consistent mapping的API进行内存申请;

  • Streaming DMA(流式DMA)

    Streaming DMA在访问内存地址时经过cache,是non-coherence设备,通常采用streaming mapping的API进行内存申请,在单次DMA传输时进行map,在传输完成后

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/275265
推荐阅读
相关标签
  

闽ICP备14008679号