xilinx DMA IP核(一) —— 文檔閱讀
本筆記不記錄DMA的Scatter/Gather特性。DMA上有三種總線:AXI4-LIte(對寄存器進行配置),AXI4-Memory Map(用於與內存交互)和AXI4 Stream(用於與外設交互)。在寄存器模式下,寄存器分為兩部分:MM2S和S2MM,每個部分包括Control Register, Status Register, Source Address, 和Transfer Length四個寄存器部分。
表:DMA在Direct Register模式下的Register Address Map
其中Soure Addresss和Destation Address指的是內存地址。
下圖是控制寄存器MM2S_DMACR,bit0用來控制DMA的開啟和關閉。
圖:MM2S_DMACR
圖:控制寄存器的bit0詳細介紹
該控制寄存器的第12,13和14bit是有關中斷設置的,分別是完成中斷,延遲中斷和錯誤中斷。
表:控制寄存器有關中斷的bit位
下一個比較重要的寄存為狀態寄存器MM2S_DMASR,如下圖所示。
圖:DMA的狀態寄存器(SR)
其中第12,13和14bit位表示中斷的狀態,寫1可以清除中斷。從表格可以看出,這三個寄存器分別與控制寄存器中的三個中斷一一對應的。
表:DMA狀態寄存器中用來表示中斷狀態的bit位
另外兩個寄存器MM2S_SA和MM2S_LENGTH分別表示地址和長度,如下圖所示。
在DMA的IP設置時,會設置Width of Buffer Length Register(8-23),默認的是14。這裏設置的就是上面的MM2S_LENGTH Register,如果設置為23,那麽最大傳輸就是2^23=8388608byte。
xilinx DMA IP核(一) —— 文檔閱讀