本文主要是介绍《嵌入式-STM32开发指南》第二部分 基础篇 - 第7章 DMA,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
7.1 DMA工作原理
7.1.1 DMA介绍
DMA (Direct Memory Access,直接存储器存取),是一种可以大大减轻 CPU 工作量的数据存取方式,因而被广泛地使用。早在 8086 的应用中就已经有 Intel 的 8237 这种典型的 DMA 控制器,而 STM32 的 DMA 则是以类似外设的形式添加到 Cortex 内核之外的。
在硬件系统中,主要由 CPU(内核)、外设、内存(SRAM)、总线等结构组成,数据经常要在内存与外设之间转移,或从外设 A 转移到外设 B。例如 :当 CPU 需要处理由 ADC 外设采集回来的数据时,CPU 首先要把数据从 ADC外设的寄存器读取到内存中(变量),然后进行运算处理,这是一般的处理方法。
在转移数据的过程中会占用 CPU 十分宝贵的资源,所以我们希望 CPU 更多地被用在数据运算或响应中断之中,而数据转移的工作交由其他部件完成。DMA 正是为 CPU 分担了数据转移的工作。因为 DMA 的存在 CPU 才被解放出来,它可以在 DMA 转移数据的过程中同时进行数据运算、响应中断,大大提高效率。两个DMA控制器有12个通道(DMA1有7个通道,DMA2有5个通道),每个通道专门用来管理来自于一个或多个外设对
这篇关于《嵌入式-STM32开发指南》第二部分 基础篇 - 第7章 DMA的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!