您的位置:首页 > 其它

STM32 DMA和内存之间的关系

2014-07-01 16:58 357 查看
谈到ADC,我们还要第一次引入另外一个重要的设备DMA.

DMA是什么东西呢。

通常在8位单片机时代,很少有这个概念。

在外置资源越来越多以后,

我们把一个MCU内部分为 主处理器 和 外设两个部分。

主处理器当然是执行我们指令的主要部分,

外设则是 串口 I2C ADC 等等用来实现特定功能的设备

回忆一下,8位时代,我们的主处理器最常干的事情是什么?

逻辑判断?不是。那才几个指令

计算算法?不是。大部分时候算法都很简单。

事实上,主处理器就是作个搬运工,

把USART的数据接收下来,存起来

把ADC的数据接收下来,存起来

把要发送的数据,存起来,一个个的往USART里放。

…………

为了解决这个矛盾,

人们想到一个办法,让外设和内存间建立一个通道,

在主处理器允许下,

让外设和内存直接 读写,这样就释放了主处理器,

这个东西就是DMA。

打个比方:

一个MCU是个公司。

老板就是主处理器

员工是外设

仓库就是内存

从前 仓库的东西都是老板管的。

员工需要原料工作,就一个个报给老板,老板去仓库里一个一个拿。

员工作好的东西,一个个给老板,老板一个个放进仓库里。

老板很累,虽然老板是超人,也受不了越来越多的员工和单子。

最后老板雇了一个仓库保管员,它就是DMA

他专门负责 入库和出库,

只需要把出库 和入库计划给老板过目

老板说OK,就不管了。

后面的入库和出库过程,

员工只需要和这个仓库保管员打交道就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: