本帖最后由 rice1 于 2024-5-28 10:38 编辑

1     引言

DMA(Direct Memory Access)控制器是一种系统组件,允许某些硬件子系统直接与主内存进行数据传输,而无需通过中央处理器(CPU)进行干预。DMA控制器的主要作用是提高数据传输的效率和速度,从而减轻CPU的负担,使其能够专注于执行其他任务。现在结合书籍内容,对DMA的相关知识进行简要介绍。

2     DMA原理与应用

针对思考题,有针对性的进行学习。

2.1         什么是DMA控制器,它起什么作用?

在7.1.1节中讲到,外设部件称为DMA控制器,它负责与CPU交互,比如DMA请求与响应。书中讲的很容易懂。

1.png

2.2      RP2040芯片的DMA控制器由哪些部分组成?各部分起什么作用?

RP2040芯片的DMA传输源和目的存储器有哪三种情况?

控制器组成这部分内容在7.2.1节中进行了简单介绍,没有太多深入。DMA传输分三种情况,为?内存到外设,外设到内存,内存到内存。

2.png 3.png

2.3      为什么RP2040芯片的DMA控制器通道的CSR有四种地址排列方式?

这部分内容在7.2.1节中进行了详细介绍,这主要是为了适应不同的数据传输需求和数据源/目标地址的特性。

RP2040芯片的DMA通道触发源有哪些选择?

这部分内容在7.2.3节中进行了详细介绍。除了DREQ触发源,还可以选择内部计数器,或者不选用任何触发源,以最快的速度传输。

4.png

RP2040芯片的DMA通道什么情况下触发中断?

这部分内容在7.2.4节中进行了详细介绍,产生中断的条件有两个。每个系统IRQ都有独立的屏蔽和状态寄存器。

3     总结

通过此次学习,对DMA控制器的原理和使用方法有了进一步了解,书中介绍的比较基础,如果要实际应用的话,还需要查阅芯片资料及库函数DEMO等进行使用。