文章總列表

Embedded System Studying note 12/21

DMA & Cache

Cache 和 DMA 通常會有 coherence 的問題
這個問題在 wikipedia 有一篇不錯的文章
http://en.wikipedia.org/wiki/Direct_memory_access#Cache_coherency_problem

當 CPU 的 cache 存在某個記憶體位址的內容
而這段記憶體又被 DMA 寫入時
cache 和 DMA 就不會同步... (傷腦筋)

我現在想到兩招可以避這個問題...

1. 第一招就直接 flush Data-cache
但這樣感覺會錯殺無辜...

2. 第二招是把 DMA寫入的位置, 告訴 MMU說這個地方是 non-cacheable
但這樣存取那塊 non-cacheable記憶體, 似乎又有點慢

有沒有人知道比較好的方法的...

留言

這個網誌中的熱門文章

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

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

CANON G3000 廢墨瓶改裝