当前位置:  技术问答>linux和unix

arm 中关于DMA的一些疑问:dma_mmap_writecombine和dma_alloc_coherent

    来源: 互联网  发布时间:2017-03-27

    本文导语:  hi 大家好: 最近再工作中遇到疑问想到一个问题,想请教一下大家。希望高手指点。 dma_mmap_writecombine dma_alloc_coherent 网上找了一些相关资料描述这两个函数的区别: 1,禁止cache 和 禁止 buffer(读写缓存) 2,dma_all...

hi 大家好:
最近再工作中遇到疑问想到一个问题,想请教一下大家。希望高手指点。
dma_mmap_writecombine
dma_alloc_coherent
网上找了一些相关资料描述这两个函数的区别:
1,禁止cache 和 禁止 buffer(读写缓存)
2,dma_alloc_coherent是不带cache和buffer的
3,dma_mmap_writecombine是不带cache但是有buffer的

问题是这样的:
1,很多dma的buf是使用dma_mmap_writecombine这个函数分配缓存区的,那么如果这个按照上述中带有buffer(读缓存)的话。如果cache中的内容还没有及时更新到dam的分配内存中。这样一来,当dma操作数据搬移的话,没有把最新的内容更新到buf中。会不会导致dma把滞后的数据搬移出去?
2,这个是不是和CPU架构有关?当cache中的内容没有更新到内存中的时候,是不会触发dma动作的?

谢谢。我的板子是cortex-A8的。

|
1 dma_alloc_writecombine分配的内存,不应用读缓冲,但是应用读缓冲,因此写到内存的数据很可能还在cache中,并没有真正应用到内存总线上,此时DMA操作,必然导致滞后的数据搬移到设备中,可以使用dma_alloc_coherent解决这个问题
2 DMA动作是否触发,和cache内容是否更新无关

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.swing类defaultbuttonmodel的类成员方法: armed定义及介绍
  • arm-elf-gcc 和 arm-linux-gcc有什么区别?arm-elf-gcc里的elf代表什么?
  • java命名空间javax.accessibility类accessiblestate的类成员方法: armed定义及介绍
  • 关于买ARM9或ARM11的开发板的问题~~~
  • arm-unknown-linux-gnu-gcc與arm-linux 的compiler有不同嗎
  • make ARCH=arm CROSS_COMPILE=arm-linu-错误
  • 请问哪有 arm-linux-nm, arm-linux-addr2line等等这些工具的使用说明~~~
  • 使用eclipse 加入arm-elf-gcc 或arm-linux-gcc 编译器为什么不好使
  • 现在是ARM9还是ARM11比较流行啊?我想买开发板什么牌子的比较好啊,我是大学生。
  • ARM ping不通虚拟机,虚拟机可以ping通ARM
  • 疑惑softfloat的问题,并求arm-linux-gcc和arm-linux-softfloat-gcc4.1.1
  • 新手请教 移植2.6内核到arm9,芯片:arm926ejs,Flash: NOR
  • 请教:make ARCH=arm CROSS_COMPILE=arm-linu- menuconfig出错
  • arm-linux-gcc 交叉编译poco-1.3.5-all 报错stlport_arm_linux_gcc库找不到
  • 关于arm 2440 选择arm-linux-gcc编译器版本的问题
  • 字节对齐 ARM VS Not ARM,经验人士请指点!!
  • ARM开发怎么实现域名解析呢,ARM板能ping通IP,不能ping通域名?
  • 关于ARM的几个基本概念
  • arm linux 2.6.29 下载初级问题,大家指教
  • 关于ARM内核编译
  • arm-elf-gcc问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,