文章總列表

Embedded System Studying note 12/21

DMA, Direct Memory Access


----


DMA 是攸關系統效能的重要元件
在系統裡經常要做資料搬移
這些事一般我們會靠一個外部的硬體幫忙做掉
不然 CPU光處理這些垃圾事, 正事都不用辦了

之前寫好的 USB shell這次正好派上用場
讓我在不寫任何一行 code 的情況下, 驗證 DMA的功能...

實驗是這樣進行的

首先準備一個檔案, 大小剛好是 64KB
1. 把檔案用 wr 的命令, 寫到記憶體 0x32000000 的地方
2. 用 DMA 把資料搬到 0x32800000
3. 用 rr 命令把檔案讀出來
4. 最後用 Araxis Merge 這個變態的 merge tool 幫我做 binary 比對

照這個想法, 寫出來的命令異常的簡單...

step.1
wr 0x32000000 c:\fw.bin

step.2
w4 0x4B000000 0x32000000 ; source addr
w4 0x4B000004 0x0 ; source addr increment
w4 0x4B000008 0x32800000 ; destination addr
w4 0x4B00000C 0x0 ; destination addr increment
w4 0x4B000010 0x58201000 ; DMA control addr
w4 0x4B000020 0x3 ; DMA GO

step.3
rr 0x32800000 65536 c:\fw1.bin

step.4
最後用 Araxis Merge 比對 fw1.bin 和 fw2.bin

----


再來就想個辦法, 好好包裝一下 DMA, 看怎麼設計比較好...

留言

這個網誌中的熱門文章

幼犬書桌椅選擇心得 升降桌 兒童桌椅

STM32 UART + DMA,使用HAL實作TX/RX,以及不定長度接收

CANON G3000 廢墨瓶改裝