学了这么多驱动,不难推出DMA的编写套路:
1)注册DMA中断,分配缓冲区
2)注册字符设备,并提供文件操作集合fops
-> 2.1)file_operations里设置DMA硬件相关操作,...来启动DMA
由于我们是用字符设备的测试方法测试的,而本例子只是用两个地址之间的拷贝来演示DMA的作用,所以采用字符设备方式编写
1.驱动编写之前,先来讲如何分配释放缓冲区、DMA相关寄存器介绍、使用...DMA3中断服务函数
//NULL:中断产生类型, 不需要,所以填NULL
//1:表示中断时,传入中断函数的参数,本节不需要所以填1,切记不能填0,否则注册失败
2.接下来,我们便来写一个DMA的字符设备驱动...:
#include
#include
#include
#include
#...include
#include
#include
#include <asm/arch/regs-gpio.h