目錄
1 DMA架構
1. 芯片架構圖一覽
2. AHB總線矩陣掛載
3. AHB1/APB1的橋和AHB1/APB2的橋
4. DMA1 和 DMA2 的區別
2 AHB總線矩陣
1 DMA架構
1. 芯片架構圖一覽
2. AHB總線矩陣掛載
stm32F411 芯片的 AHB 總線矩陣上共掛載了 6 主 5 從
六主:
Icode-bus、Dcode-bus、s-bus(詳情可見ARM內核結構)
DMA1 memory bus(訪問內存)
DMA2 memory bus(訪問內存)
DMA2 peripheral bus(訪問外設)
五從:
-
Internal Flash memory ICode bus(接I-bus)
-
Internal Flash memory DCode bus(接D-bus)
-
Main internal SRAM(供給訪問SRAM)
-
AHB1 peripherals including AHB to APB1 bridges and APB2 peripherals(AHB1總線,包括后面的AHB1/APB1的橋和AHB1/APB2的橋)
-
AHB2 peripherals(AHB2總線)
-
3. AHB1/APB1的橋和AHB1/APB2的橋
如圖所示,AHB總線矩陣上有一個“從機”AHB1,因為AHB的速度是很快的,外設的速度不夠快,為了正常讀寫,需要進行“降速”處理,所以就有了AHB1/APB2的橋和AHB1/APB1的橋來進行降速。
4. DMA1 和 DMA2 的區別
可以看到,DMA2 有兩條 master 掛載在 AHB 總線矩陣上:DMA2 memory bus(訪問內存)、DMA2 peripheral bus(訪問外設)
DMA1 只有一條 master 掛載在 AHB 總線矩陣上:DMA1 memory bus(訪問內存)
也就是說:DMA1 只能訪問 APB1 總線上的外設,而 DMA2 可以訪問更多外設
2 AHB總線矩陣
為什么總線矩陣中明明是 master 的位置標識的卻是 S ?而 slave 的位置標識的卻是 M?
一圖解答:
圖中總線矩陣上交叉線上的“小圓圈”代表這個位置“可以”連接起來。
關于系統總線架構的更多詳情可見:ARM處理器總線架構解析:iCode、D-code、S-Bus與總線矩陣
由于其他總線與DMA關系不大,不在此贅述。