limee
驱动牛犊
驱动牛犊
  • 注册日期2004-03-02
  • 最后登录2006-07-25
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1385回复:2

PCI映射寄存器的基址是怎么来的?

楼主#
更多 发布于:2005-04-11 00:24
做的是WDM的驱动程序,有个疑问

DMA传输需要建立映射寄存器,那么映射寄存器的基址是
怎么来的呢,在程序中我没有看到具体哪个函数产生MapRegisterBase的值,
这个基地址是在驱动里面读到的吗?plx9656也是6个基地址吗?
谁能够解答我的疑惑,谢谢!


[编辑 -  4/11/05 by  limee]
cch7701
驱动牛犊
驱动牛犊
  • 注册日期2002-08-25
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分60分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-04-12 18:27
用过9656,和9054差不多。除了速度快以外,没有什么特别的。
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2005-04-12 20:30
做的是WDM的驱动程序,有个疑问

DMA传输需要建立映射寄存器,那么映射寄存器的基址是
怎么来的呢,在程序中我没有看到具体哪个函数产生MapRegisterBase的值,
这个基地址是在驱动里面读到的吗?plx9656也是6个基地址吗?
谁能够解答我的疑惑,谢谢!


[编辑 -  4/11/05 by  limee]


映射寄存器的基地址可以说是系统分配的,,,一般情况下,,

在startio例程中要调用AllocateAdapterChanel函数,,就是向系统请求,,,DMA通道或者。。适配器对象,,同时要求,,此次传输要求的,,映射寄存器数目。。。

AllocateAdapterChanel函数调用成功以后(代表系统分配了你要求的资源(DMA通道,,映射寄存器)),,系统就会自动调用安排好的AdapterContral例程,,这个例程的一个参数就是映射寄存器的基地址,,,(系统给的。。)
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
游客

返回顶部