主题 : 求助:mini2440 UART0的RX用DMA模式收不到数据 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 7277
精华: 0
发帖: 5
金钱: 25 两
威望: 5 点
综合积分: 10 分
注册时间: 2009-07-08
最后登录: 2018-02-08
楼主  发表于: 2010-11-02 20:11

 求助:mini2440 UART0的RX用DMA模式收不到数据

开发板是mini2440,写了一个DMA测试程序,ram到ram的数据复制测试成功,但io到ram的测试通不过,始终接收到不DMA中断。研究很长时间,也参照了网上找的一些代码,实在解决不了了,请高手指点一下,非常感激!

初始化汇编代码应该没有问题,因为am到ram的数据复制也是用的那个代码。UART0的RX设为DMA模式 使用硬件触发,在DMA中断代码中点灯。
寄存器配置如下:
    pDMA->DISRC=URXH0;
    pDMA->DIDST=0x30200000;    //dram地址
    pDMA->DISRCC=(1<<1)|(1<<0); // APB  fix
    pDMA->DIDSTC=(0<<1)|(0<<0); // AHB inc

    //        非握手模式    APB同步  中断有效  非爆发    单服务
    pDMA->DCON=(0<<31)|        (0<<30)|    (1<<29)|    (0<<28)|    (0<<27)|\
    (0<<24)|    (1<<23)|        (0<<22)|    (0<<20)|        8;
    //nXDREQ0    hardware trigger    reload        字节传输    计数器8
    pDMA->DMASKTRIG=(1<<1)|0; //DMA on    
    
uart的配置    
    UCON0    = 0x06;    // 110     方式,rx使用dma,UART时钟源为PCLK
    UFCON0 = (0<<6) | (1 <<4) | 1;    //enable fifo ,reset disable, tx trigger to 1,rx trigger is max