我想在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
拜託各位高手救救我