linux dma实例,DMA使用示例!

这篇博客展示了如何在 Linux 系统中进行 DMA (直接内存访问) 的自我测试,包括分配源和目标缓冲区,设置 DMA 复制,等待传输完成并验证数据完整性。代码示例详细地说明了 DMA 传输过程。
摘要由CSDN通过智能技术生成

29 #include 30

31 #define MAX_DMA_ADDRESS     (~0UL)

32

33 static void fsl_dma_test_callback(void *dma_async_param)

34 {

35    struct completion *cmp = dma_async_param;

36    printk( KERN_ERR "dma transfer done, end=%lu\n", jiffies );

37    complete(cmp);

38 }

39

40 static int fsl_dma_self_test(struct dma_chan *chan)

41 {

42    int i;

43    u8 *src;

44    u8 *dest;

45    struct dma_device *dma = chan->device;

46    struct device *dev = dma->dev;

47    struct dma_chan* dma_chan = chan;

48    struct dma_async_tx_descriptor *tx;

49    dma_addr_t dma_dest, dma_src;

50    dma_cookie_t cookie;

51    int err = 0;

52    struct completion cmp;

53    unsigned long tmo;

54    unsigned long flags;<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值