作者mikebenq ()
看板Linux
標題Fw: [問題] linux DMA問題
時間Wed Apr 30 18:47:35 2014
※ [本文轉錄自 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
拜託各位高手救救我
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.27.12
※ 文章網址: http://www.ptt.cc/bbs/LinuxDev/M.1398850493.A.75F.html
→ alongalone:kmalloc有大小限制,你提到花很多時間.我猜有可能爆掉 04/30 18:03
→ alongalone:有考慮試看看 vmalloc 嗎 04/30 18:04
→ mikebenq:我kmalloc一塊記憶體將資料複製進去是成功的 04/30 18:38
→ mikebenq:但是這麼做感覺很浪費時間 04/30 18:39
→ mikebenq:可以用原本的資料不用經過複製的程序嗎? 04/30 18:40
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 轉錄者: mikebenq (140.112.27.12), 04/30/2014 18:47:35