lei006
驱动牛犊
驱动牛犊
  • 注册日期2005-10-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望142点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2068回复:2

如何读取PCI 的寄存器?

楼主#
更多 发布于:2010-03-24 13:58
我写了一段代码,但总是读不出来,数据,不知道为什么?

    switch (type)
    {                    // select on resource type
    case CmResourceTypeMemory:

        KdPrint(("2 start %8X%8.8lX length %X\n",   此处内存大小为 1000
        resource->u.Memory.Start.HighPart, resource->u.Memory.Start.LowPart,
        resource->u.Memory.Length));

        break;

    }                        // for each resource

                      // 从物理地址映射到虚地址
    pdx->MemBar0 = (PUCHAR)MmMapIoSpace(resource->u.Memory.Start, resource->u.Memory.Length, MmNonCached);
    pdx->nMem0 = resource->u.Memory.Length;

                      //从地址中读出32 字节的数据
    UCHAR BUFF[128];
    READ_REGISTER_BUFFER_UCHAR((PUCHAR)pdx->MemBar0, BUFF, 32);            
lei006
驱动牛犊
驱动牛犊
  • 注册日期2005-10-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望142点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2010-03-24 14:12
我本意是读出,PCI 寄存器的值,并显示出来!
RoyLi
驱动牛犊
驱动牛犊
  • 注册日期2008-02-29
  • 最后登录2012-11-09
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望57点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2010-04-26 12:48
不太理解你的意思!
PCI device的space不是一般通过0xcf8和0xcfc读写吗!
比如vendor ID,device ID什么的!你说的是不是这个意思?
游客

返回顶部