linux DMA問題 - Linux

Table of Contents

※ [本文轉錄自 LinuxDev 看板 #1JOCEzTV ]

作者: mikebenq () 看板: LinuxDev
標題: [問題] linux DMA問題
時間: Wed Apr 30 17:34:47 2014

我想在linux下用DMA和我的硬體溝通
網路上很多教學文都是kmalloc一塊記憶體大小
用dma_map_single 映射出一個DMA可使用的地址
這種方法我也試成功了

現在的問題是我有一筆資料要用我的硬體做運算
我已經知道這筆資料起始位置也確定資料是連續的
但是我把這個地址用dma_map_single會出現segment fault
我現在的做法是把要算的資料複製到一塊kmalloc的記憶體
再用硬體算我剛剛複製的資料
這樣是成功的

但是複製一份花了相當多的時間
我想知道已知memory address 可否直接用DMA
該怎麼做

我的dma_map_single 跟 kmalloc 都是寫在我硬體的driver中的ioctl
要算的資料是在main中產生
當要開始算的時候call ioctl

拜託各位高手救救我

--

All Comments

Mason avatarMason2014-05-05
kmalloc有大小限制,你提到花很多時間.我猜有可能爆掉
Franklin avatarFranklin2014-05-08
有考慮試看看 vmalloc 嗎
Damian avatarDamian2014-05-11
我kmalloc一塊記憶體將資料複製進去是成功的
Wallis avatarWallis2014-05-16
但是這麼做感覺很浪費時間
Caroline avatarCaroline2014-05-20
可以用原本的資料不用經過複製的程序嗎?