DMA直接存储器理论

DMA是一种硬件机制,允许外设和存储器之间直接数据交换,减少CPU介入,提高系统效率。它包括DMA0和DMA1,支持存储器到外设、外设到存储器及存储器到存储器的传输。每个DMA控制器有8个通道,可配置不同外设请求优先级。仲裁器处理多个请求,FIFO用于数据缓冲,提供单数据和多数据传输模式。
摘要由CSDN通过智能技术生成
DMA——一种硬件的方式在外设(Peripheral)和存储器(Memory),或者存储器和存储器之间传输数据,无需CPU干预,避免了CPU多次进入中断进行大规模数据拷贝,提高整体系统性能。
两个DMA:DMA0,DMA1
DMA0: P->M ; M->P 
DMA1: P->M ; M->P ;M->M
支持三种传输方式:
– 存储器(SRAM)到外设;
– 外设到存储器(SRAM);
– 存储器(FLASH)到存储器(SRAM)(仅 DMA1 支持);

 

 

1、通道、外设请求

每个 DMA 控制器有 8 个通道,每个通道有多个外设请求。寄存器 DMA_CHxCTL PERIEN位域决定了 DMA 通道选中的外设请求。

DMA0 DMA1 的外设请求映射分别列于 10-2. DMA0 外设请求 10-3. DMA1 外设请求

 M->M 无需配置,可以选择全部的通道和外设请求。

2、仲裁器

每个 DMA 控制器有两个分别对应于外设和存储器的仲裁器。当 DMA 控制器在同一时间接收到多个外设请求时,仲裁器将根据外设请求的优先级来决定响应哪一个外设请求。优先级规则如下:
  • 软件优先级:分为4级,低,中,高和超高。可以通过寄存器DMA_CHxCTLPRIO位域来配置;
  • 硬件优先级:当通道具有相同的软件优先级时,编号低的通道优先级高。例:通道0和通道2配置为相同的软件优先级时,通道0的优先级高于通道2

3、FIFO

4字FIFO(32中一个字=4个字节)

DMA 控制器的每个通道都有一个 4 字深度的 FIFO 用于缓冲数据,从源地址读取的数据会先暂时保存在FIFO 中,再传输到目的地址。根据 FIFO 的配置, DMA 控制器支持两种数据处理模式:单数据传输模式和多数据传输模式。在存储器到存储器模式下,DMA 控制器仅支持多数据传输模式。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值