Fw: [問題] linux DMA問題

看板Linux作者時間11年前 (2014/04/30 18:47), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ [本文轉錄自 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

04/30 18:03, , 1F
kmalloc有大小限制,你提到花很多時間.我猜有可能爆掉
04/30 18:03, 1F

04/30 18:04, , 2F
有考慮試看看 vmalloc 嗎
04/30 18:04, 2F

04/30 18:38, , 3F
我kmalloc一塊記憶體將資料複製進去是成功的
04/30 18:38, 3F

04/30 18:39, , 4F
但是這麼做感覺很浪費時間
04/30 18:39, 4F

04/30 18:40, , 5F
可以用原本的資料不用經過複製的程序嗎?
04/30 18:40, 5F
※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: mikebenq (140.112.27.12), 04/30/2014 18:47:35
文章代碼(AID): #1JODJ853 (Linux)
文章代碼(AID): #1JODJ853 (Linux)