阅读:1691回复:3
关于9054DMA寄存器配置问题
9054配置:
> Master Enable bit PCICR [04h][2]:1b 置9054对PCI总线主设备 > DMAMODE0[100h]:00000043h:置本地总线为32bit C模式,设置DMA通道0为 BLOCK 模式,使能 > 通道0的ready#输入,使能本地总线单周期模式。 > DMAPADR0[104h]:00000840h:置PCI总线DMA起始地址为00000840h。 > DMALADR0[108h]: 03E48000h: 置本地总线DMA起始地址为03E48000h。 > DMASIZ0[10Ch]:00000010h: 置一次DMA过程传输数据尺寸为16BYTE。 > DMADRP0[110h]:00000000h: 置DMA方向为从PCI总线到本地总线方向。 >> 启动PCI到本地端sdram的DMA过程:置DMACSR0[128h]:00000003h。 > 结果:未能读到希望的数据。 > > 发现问题: > > 分析9054在DMA过程LA线上送出的地址,发现地址是从00000000连续加4的地址。该地址随着每次DMA过程持续增加。每次DMA都以前次DMA的结束时的LA送出的地址作为本次DMA开始的LA送出地址而不是我所设置的DMALADR0[108h]: 03E48000h。 > > 请问blockDMA的寄存器配置是否是正确的?是否blockDMA过程设置这些寄存器即可正确完成? 谢谢! |
|
沙发#
发布于:2005-01-06 09:18
没有人回答吗?
请帮帮我吧。 给20分,不过分值怎么过户呢? |
|
板凳#
发布于:2005-01-06 22:23
应该不会有错啊
我使用的BLOCK DMA也是这样配置的 我的配置是这样的: PCICR [04h][2]:1b (DMAMODE0,0x20583) (DMAPADR0,PAddress) (DMALADR0,LAddress) (DMASIZ0,NBytes) (DMADPR0,0x8) (DMACSR0,0x3) |
|
地板#
发布于:2005-01-07 10:13
怎么觉得你那个DMAPADR0中的PCI地址值那么小呢:)
|
|