看板 Linux 關於我們 聯絡資訊
※ [本文轉錄自 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