※ [本文转录自 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
拜托各位高手救救我