DMA的工作机制
如果說IPC是實現(xiàn)SoC芯片core 2 core的通信,那么DMA則是實現(xiàn)memory 2 memory或者memory 2 peripheral通信的一種機制。DMA可以分為P-DMA核M-DMA。DMA說白了就是實現(xiàn)數(shù)據(jù)搬移data transfer,從一個地址到另一個地址。數(shù)據(jù)搬移的過程是在channel中進行的,channel具有優(yōu)先級priority、state(disabled、blocked、pending、active)、access control(privileged mode、 secure mode)等特性,通過對channel進行配置核控制,實現(xiàn)對DMA的操作。
channel 描述符有四種類型:
single transfer:單個數(shù)據(jù) 1D transfer:1維數(shù)組 2D transfer:2維數(shù)據(jù) CRC transfer:帶CRC校驗數(shù)據(jù)在DMA數(shù)據(jù)傳輸完成complete的時候,會產(chǎn)生一個中斷Interrupt。具體到中斷的細節(jié),需要INTR、INTR-SET、INTR-MASK、INTR—MASKED,起碼四個寄存器來控制。另外需要狀態(tài)寄存器STATUS的配合。
1. The main CPU programs the descriptor chain (in memory) and associates it with a specific channel. Further it programs the channel registers to set the desired attributes for the總結(jié)