可以看到DMA和CPU之间共用系统总线。
在这种情况下,dma和CPU之间可能会发生竞争,比如访问同一个外设,这种情况下,DMA优先访问。
DMA,工作流程,通过一个信号(可以软件也可以硬件)trigger DMA control 。DMA control 会把发送端的数据写入外设或者内存数据寄存器中,对于stm32l496而言,对应的是DMA_CPARx or DMA_CMARx register。对于接受者而言,同样的根据芯片的电流变化会把外设或者内存数据寄存器中的数据移动到另外的内存或者外设数据寄存器,此外还有一个计数寄存器,统计数据首发完成情况。
对于stm32l496而言,是DMA_CNDTRx register.
析完dma原理之后,我们以其中一个寄存器为例分析,其余的寄存器,可推而广之。