当前位置: 技术问答>linux和unix
谁知道怎么用linux-kernel/arch/arm/mach-GM下的ahb_dma.c这段代码的,再送100分
来源: 互联网 发布时间:2016-09-28
本文导语: RT,做DMA传输,平台是GM8180的,搞了很久都没头绪,试着照ahb_dma.c里的usage去调用,结果还是不成功: int error = 0; int size = 128; char src[128] = {"aaaaaaaaaaaaaccccc"}; char dst[128] = {"bbbbbbbbbbbbbbb"}; char * p1 = (char*)kmalloc(size,G...
RT,做DMA传输,平台是GM8180的,搞了很久都没头绪,试着照ahb_dma.c里的usage去调用,结果还是不成功:
有哪位大哥知道怎么用的,再送100分哦
int error = 0;
int size = 128;
char src[128] = {"aaaaaaaaaaaaaccccc"};
char dst[128] = {"bbbbbbbbbbbbbbb"};
char * p1 = (char*)kmalloc(size,GFP_KERNEL);
char * p2 = (char*)kmalloc(size,GFP_KERNEL);
memcpy(p1,src,strlen(src));
memcpy(p2,dst,strlen(dst));
printk("p1=%p:%s %uln",p1,p1,virt_to_phys(p1));
printk("p2=%p:%s %uln",p2,p2,virt_to_phys(p2));
int ret=0;
printk("11111111111111n");
ret=fa_request_ahb_dma_ch(0, "test", NULL,NULL, ch, 1) ;
ret=fa_ahb_dma_init(ch,0);
if(ret!=0)
{
printk("11111 errorn");
}
printk("222222222222222222n");
fa_set_ahb_dma_src_params(ch, virt_to_phys(p1), AHBDMA_MASTER_0, 2,0);
printk("333333333333333333n");
fa_set_ahb_dma_dst_params(ch, virt_to_phys(p2), AHBDMA_MASTER_0,2,0);
printk("4444444444444444444444n");
fa_set_ahb_dma_cfg_params(ch, 0, 0, 0, 0);
fa_set_ahb_dma_transfer_params2( ch, AHBDMA_MASTER_0, 32, 0);
printk("55555555555555555555n");
fa_ahb_dma_add_auto(ch, 32);
fa_ahb_dma_start( ch);
printk("6666666666666666666666666n");
printk("src=/tech-qa-linux/%s dst=%sn/index.html",virt_to_phys(p1),virt_to_phys(p2));
// u_delay(100000);
fa_ahb_dma_clear_int(ch);
fa_ahb_dma_stop(ch);
fa_free_ahb_dma(ch);
kfree(p1);
kfree(p2);
有哪位大哥知道怎么用的,再送100分哦
|
同问,这个问题纠结了很久了。。。。。。期待大侠的指导!
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。