kmalloc申请的内存不能用于DMA

ab421701136 2014-11-13 11:15:29
我在使用kmalloc申请一段内存,然后启动DMA从设备传输数据到该段内存,但是没有什么效果。 但是,当我使用dma_alloc_writecombine或者dma_alloc_coherent来申请内存时,传输的结果就是正确的。但是就有这样一个问题,dma_alloc_writecombine或者dma_alloc_coherent申请的内存是会关闭cache,所以操作起来会很慢。能不能用DMA来传输kamlloc的内存呢?声明一下,我是嵌入式linux arm架构下做的开发。
...全文
642 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Joeliu 2014-11-20
  • 打赏
  • 举报
回复
kmalloc的内存,需要map一下才能用于dma,是否cached要看具体处理器。
Heaven_Redsky 2014-11-15
  • 打赏
  • 举报
回复
mark下子,看看有没有正解。
fly 100% 2014-11-13
  • 打赏
  • 举报
回复
应该是可以的 dma的缓存一般不用kmalloc

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧