DMA Test Driver for Linux2.6.xx+ARM9

这是一个针对Linux2.6.xx+ARM9平台的DMA测试驱动程序,实现了DMA通道的配置、启动及中断处理。通过ioremap映射内存地址,设置DMA传输参数,并使用dma_alloc_writecombine分配内存缓冲区。程序还包括了初始化和退出模块,以及中断处理函数。
摘要由CSDN通过智能技术生成

/*
  *  DMA  DRIVER TEST
  */

----------------------------------------------------------driver test-----------------------------------------------------------

 

----------------------------------------------------------driver---------------------------------------------------------------

#include <linux/init.h>
#include <linux/module.h>

#include <linux/interrupt.h>
#include <linux/dmaengine.h>
#include <linux/delay.h>
#include <linux/dma-mapping.h>

#include <asm/arch/map.h>
#include <asm/io.h> 

#include <linux/moduleparam.h>
#include <linux/types.h>
#include <linux/fs.h>
#include <linux/init.h>  
#include <asm/uaccess.h>

#include <asm/arch/regs-gpio.h>
#include <asm/irq.h> 

#define DMA_CHANNEL0 0
#define DMA_CHANNEL1 1
#define DMA_CHANNEL2 2
#define DMA_CHANNEL3 3

#define DMA_CHANNEL0_ADDR 0x4B000000
#define DMA_CHANNEL1_ADDR 0x4B000040
#define DMA_CHANNEL2_ADDR 0x4B000080
#define DMA_CHANNEL3_ADDR 0x4B0000C0

//static void __iomem *p = NULL;

#define SRCONAHB (0<<1)
#define SRCONAPB (1<<1)
#define ADDRINC (0<<0)
#define ADDRFIX (1<<0)

#define DMASTOP (1<<2)
#define DMAON (1<<1)
#define DMAOFF (0<<1)
#define DMASW_TRIG (1<<0)

struct dma_regs {
 unsigned long disrc;    //dma init src
 unsigned long disrcc;   //dma init src ctrl
 unsigned long didst;    //dma

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值