pengfeu
驱动牛犊
驱动牛犊
  • 注册日期2004-03-27
  • 最后登录2004-07-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:995回复:1

有关武安和书中DMA的问题。

楼主#
更多 发布于:2004-05-12 14:18
在武安和书中有关pci9054的DMA操作有如下代码:
#define INTCSR    0x68
#define DMAMODE0  0x80
#define DMAPADR0  0x84
#define DMALADR0  0x88
#define DMASIZ0   0x8C
#define DMADPR0   0x90
#define DMACSR0   0xA8

VOID PCI9054Device::StartDMA(ULONG PAddress,ULONG NBytes)
{
//下面几条语句设置DMA通道0寄存器,启动块传输方式,从FIFO读数据
//Channel0 interrupt to the PCI Bus interrupt,Done Interrupt Enable,FIFO
m_IoPortRange0.outd(DMAMODE0,0x20C00);
//DMA Channel0 PCI Address
m_IoPortRange0.outd(DMAPADR0,PAddress);
//DMA Channel0 Local Address,自己设计的FIFO地址
m_IoPortRange0.outd(DMALADR0,0x8);
//DMA Channel0 Transfer Size(Bytes)
m_IoPortRange0.outd(DMASIZ0,NBytes);
//from the Local Bus to the PCI Bus
m_IoPortRange0.outd(DMADPR0,0x8);
//Channel0 Enable,Start
m_IoPortRange0.outb(DMACSR0,0x3);
}
请问这两段代码是什么意思???希望能够具体解释一下。非常感谢。
Bob Cheng
驱动牛犊
驱动牛犊
  • 注册日期2002-10-16
  • 最后登录2005-01-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-05-12 17:44
1。第一段代码:是你PCI9054 有关DMA寄存器的地址
2。第一段代码:是对PCI9054的DMA寄存器进行设置(比如初始化,DMA传输尺寸、起始地址等)
Bob Chen
游客

返回顶部