傻傻分不清楚的MDMA, DMA1,DMA2, DMA2D,BDMA?
最近一直在使用H743这颗料,主频跑400M,很多外设在使用时都开了DMA,性能杠杠的,推荐大家多使用。如SDRAM, QSPI,SPI等,H743里面DMA比较多,也较复杂,有DMA2D,MDMA, BDMA,DMA1,DMA2等等,使用时候注意区分。
MDMA
先来看看MDMA的框图概览
例如在SDRAM 和QSPI的操作中我们可以使用MDMA来完成。我是SDRAM作为RGB屏的缓存和动态内存使用,初始化完SDRAM后,可以初始化MDMA,可参照官方例程来修改适应自己的板子
同样在QSPI外挂FLASH的操作中,同样可使用MDMA,换另一个通道,
这样可以大大提升性能。节省CPU资源。有很多通道供你使用,放心大胆的使用。更多关于MDMA的说明可以参考手册使用,结合官方例程。
DMA
H743有两个DMA,分别为DMA1和DMA2,
像ADC,UART,SPI,SD卡等外设都支持DMA传输和操作,都有相应例程,比如我在SPI和另一个芯片通信就使用DMA2来传输。
DMA的知识和篇章在参考手册中有很多介绍需要详细阅读和参考,结合例程。
DMA2D
DMA2D是专门用于图像处理加速的DMA,我们在做屏的驱动时候可以充分考虑使用。
手册中有几十页都是来讲DMA2D的,这个功能还是很好的,如果你使用H743做屏幕类相关产品,这个要用起来。例如我在移植emWIN作为图形界面时候驱动就使用了DMA2D.
这里只是给大家简单介绍下,这些内容要彻底搞清楚,还需要下去自己阅读手册和例程代码。
识别图中二维码关注