arethusa
驱动牛犊
驱动牛犊
  • 注册日期2002-11-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1429回复:6

请问ds编写wdm的一个问题

楼主#
更多 发布于:2002-11-20 15:24
我是一个新手,想问一下,我用ds向导建立PCI的wdm框架,中间要设MemoryRange0,请问,设好后程序对MemoryRange0的读写是针对一下哪个内存空间的?
1、PCI配置空间
2、Local配置空间
3、CS0内存空间

不明白,请高手指点一下
QJE
QJE
驱动小牛
驱动小牛
  • 注册日期2001-08-09
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分470分
  • 威望49点
  • 贡献值0点
  • 好评度44点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-21 20:49
我是一个新手,想问一下,我用ds向导建立PCI的wdm框架,中间要设MemoryRange0,请问,设好后程序对MemoryRange0的读写是针对一下哪个内存空间的?
1、PCI配置空间
2、Local配置空间
3、CS0内存空间

不明白,请高手指点一下
 


你要看MemoryRange0是如何初始化的。
看这句PciConfig.BaseAddressIndexToOrdinal(0);
参数0到5表示不同的配置空间,
0表示Memory-Mapped Configuration Registers
1表示I/O-Mapped Configuration Registers
2表示Local Address Space 0
3表示Local Address Space 1
4表示Local Address Space 2
5表示Local Address Space 3


[编辑 -  11/21/02 by  QJE]
arethusa
驱动牛犊
驱动牛犊
  • 注册日期2002-11-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-22 00:18
[quote]我是一个新手,想问一下,我用ds向导建立PCI的wdm框架,中间要设MemoryRange0,请问,设好后程序对MemoryRange0的读写是针对一下哪个内存空间的?
1、PCI配置空间
2、Local配置空间
3、CS0内存空间

不明白,请高手指点一下
 


你要看MemoryRange0是如何初始化的。
看这句PciConfig.BaseAddressIndexToOrdinal(0);
参数0到5表示不同的配置空间,
0表示Memory-Mapped Configuration Registers
1表示I/O-Mapped Configuration Registers
2表示Local Address Space 0
3表示Local Address Space 1
4表示Local Address Space 2
5表示Local Address Space 3


[编辑 -  11/21/02 by  QJE] [/quote]

谢谢你,不知道我理解的对不对,初始化是0/1都表示映射到Local配置空间寄存器,如果是2就是表示CS0的基地址,3就是CS1的基地址,依此类推。

而如果我想访问Local range0呢?也就是说我不用CS片选,而直接用Local地址线加译码器。
nikko
驱动小牛
驱动小牛
  • 注册日期2002-08-08
  • 最后登录2004-09-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-11-22 10:13
我是新手,谈谈看法!  部队的各位指正!

PciConfig.BaseAddressIndexToOrdinal(0);中的0-5其实是由BAR的序号决定的,他的顺序和类型可以用softICE查到。

因为驱动程序是以硬件为基础的,所以一切的实现应该以硬件的实际为出发点。当PCI配置空间内的基址寄存器0对应一个64K的Mem,我们就将BAR0付给MemoryRange0,MemoryRange0只是一个名称,你可以另起一个名字叫小狗0也没问题!

请解释一下Local Address Space 和 CS 至两个概念我很模糊! ;)
http://202.106.185.224/music_1024/battleraper_02_04_27.mp3
arethusa
驱动牛犊
驱动牛犊
  • 注册日期2002-11-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-11-22 14:25
我是新手,谈谈看法!  部队的各位指正!

PciConfig.BaseAddressIndexToOrdinal(0);中的0-5其实是由BAR的序号决定的,他的顺序和类型可以用softICE查到。

因为驱动程序是以硬件为基础的,所以一切的实现应该以硬件的实际为出发点。当PCI配置空间内的基址寄存器0对应一个64K的Mem,我们就将BAR0付给MemoryRange0,MemoryRange0只是一个名称,你可以另起一个名字叫小狗0也没问题!

请解释一下Local Address Space 和 CS 至两个概念我很模糊! ;)


就我的理解,PCI配置空间的基址寄存器0应该是Local的配置空间吧,因此就不能在对应到一个64k地mem。

Local地址空间我理解是Local上可寻址的空间,它包括了cs的空间。

不知道对不对,请高手指正。
nikko
驱动小牛
驱动小牛
  • 注册日期2002-08-08
  • 最后登录2004-09-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-11-22 14:33
偶还是不懂你的local 和cs  特别是cs!  不是反恐精英的缩写吧! :D
http://202.106.185.224/music_1024/battleraper_02_04_27.mp3
arethusa
驱动牛犊
驱动牛犊
  • 注册日期2002-11-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-11-22 18:08
偶还是不懂你的local 和cs  特别是cs!  不是反恐精英的缩写吧! :D


我要被你气死了,cs不就是chip select么?
游客

返回顶部