DMA

本文详细介绍了DMA(直接存储器访问)的基本原理,包括DMA处理、通道优先级设定、数据传输的方向控制、地址增量计算、存储器的不同存储模式以及中断处理。此外,还详细阐述了DMA的配置过程,帮助读者深入理解DMA在系统中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、DMA基本原理

	DMA(Direct Memory Access),直接存储器访问,它可以将数据从一个地址空间复制到另一个地址空间。当CPU初始化这个传输动作时,数据传输由DMA控制器来实现和完成,无需CPU的干涉。
	DMA没有中断处理方式那样保留现场和恢复现场过程,通过硬件为RAM和IO设备开辟一条直接传输数据的通道,使得CPU的效率大大提高。
	大容量的单片机中有两个DMA——DMA1(七个通道)和DMA2(五个通道),每个通道专门用来管理来自一个或多个外设对存储器访问的请求。还有一个仲裁器来协调各个DMA请求的优先权。

2、DMA处理

	在发生一个事件后,外设向DMA控制器发送一个请求,DMA控制器根据优先级处理请求。当DMA开始访问发送请求的外设时,会发送一个应答信号。当外设收到应答信号后,便立即释放它的请求。一旦外设释放了请求,DMA控制器也同时撤销应答信号。如果有更多的请求,外设可以启动下一个周期。

3、通道优先级

	通道优先级一共有四级——很高、高、中等和低。在相等优先级情况下,则较低编号的通道比较高编号的通道的优先级要高。

4、数据传输方向

	可以通过DMA_CCRx寄存器中的DIR来设置传输方向。0为从外设读——外设传向存储器;1为从存储器读——存储器传向外设。

5、地址增量

	地址增量包括存储器地址增量模式和外设地址增量模式。
	举个例子——存储器地址增
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值