wulang1114
驱动牛犊
驱动牛犊
  • 注册日期2009-06-22
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望31点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1638回复:1

PCI9054驱动学习中的低级问题

楼主#
更多 发布于:2009-09-24 11:17
低级问题:
m_IoPortRange0.outd(INTCSR,0x40100);//允许PCI中断和DMA通道0中断

这条语句中INTCSR为0x68,为什么写0x40100就能允许PCI中断和DMA通道0中断,怎么得来的???
请高手指点一下啊!!

还有后面着所有的写入的数都是怎么得来了,我怎么知道写什么数据呢???

    //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);
tqijin
驱动小牛
驱动小牛
  • 注册日期2006-07-04
  • 最后登录2013-11-21
  • 粉丝3
  • 关注0
  • 积分31分
  • 威望1060点
  • 贡献值1点
  • 好评度14点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-10-11 10:53
你需要看看PCI9054的datasheet
”为什么写0x40100就能允许PCI中断和DMA通道0中断“
INTCSR不同位表示不同意思
也就是相应各位置0 或者置1
游客

返回顶部