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

dma可以替代memcpy吗

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

    本文导语:  我的程序用双缓存绘图(直接操作framebuffer) 每次需要2次memcpy操作, 屏幕数据600k 每次执行memcpy经测试需要15ms, 这样2次就30ms 在考虑执行其他任务的情况下, 速度更低 硬件是OMAPL138 (arm926 ejs) dma不知道可不可以做到内...

我的程序用双缓存绘图(直接操作framebuffer)
每次需要2次memcpy操作, 屏幕数据600k
每次执行memcpy经测试需要15ms, 这样2次就30ms
在考虑执行其他任务的情况下, 速度更低
硬件是OMAPL138 (arm926 ejs)

dma不知道可不可以做到内存之间直接拷贝, 如果可以, 速度会提高多少?

还有最好有示例代码, 网上找的例子和linux内核的例子不是遍不过去就是无法执行

|
在内核中调用EDMA的实例代码,平台DM6446

int edma3_memtomemcpy(struct edma_linux_params *params)
{
int result = 0;
int i;
unsigned int numenabled = 0;
struct paramentry_descriptor param_set;
unsigned int dma_ch;
unsigned int tcc = EDMA_TCC_ANY;
result = davinci_request_dma(EDMA_DMA_CHANNEL_ANY, "A-SYNC_DMA0",
     edma_callback, NULL,
     &dma_ch, &tcc, 0);
if (0 != result) {
DMA_PRINTK
    ("nedma3_memtomemcpytest_dma::davinci_request_dma failed for dma_ch, error:%dn",
     result);
return result;
}

davinci_set_dma_src_params(dma_ch, (unsigned long)(params->src),
   INCR, W8BIT);

davinci_set_dma_dest_params(dma_ch, (unsigned long)(params->dst),
    INCR, W8BIT);

davinci_set_dma_src_index(dma_ch, params->srcbidx, params->srccidx);

davinci_set_dma_dest_index(dma_ch, params->dstbidx, params->dstcidx);

/* AB Sync Transfer Mode */
davinci_set_dma_transfer_params(dma_ch, params->acnt, params->bcnt, params->ccnt,
 params->bcnt, ABSYNC);

/* Enable the Interrupts on Channel 1 */
davinci_get_dma_params(dma_ch, ¶m_set);
param_set.opt |= (1 

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












  • 相关文章推荐
  • lcd驱动dma问题
  • 驱动程序中的dma操作问题?
  • DMA多次传送如何设置~迷茫中
  • 有关2440 DMA驱动的问题
  • DM9000如何使用DMA
  • 请教DMA的问题
  • 请问如何让DMA方式读取硬盘啊?
  • linux kernel module中,怎样进行dma转送
  • 關於SPI下實現DMA傳輸
  • 请教一个关于内存分配的问题(系统和DMA共享一块物理内存空间)
  • 有人熟悉DMA吗?我要实现内存中的内存的“搬动”。(LINUX)
  • uClinux系统内核2.6,使用GFP_KERNEL | GFP_DMA分配内存失败!
  • 想法:内存中的数据通过DMA存储到USB-disk中
  • alsa driver ,dma_alloc_coherent問題
  • 关于DMA操作的问题
  • DMA中从内存传输到内存源和目的地址怎么设
  • 如何打开DMA通道?
  • 什么是DMA 啊?
  • 能不能用软件仿真dma的数据传输过程?
  • 关于DMA_driver的一些问题?


  • 站内导航:


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

    ©2012-2021,