阅读:1429回复:6
请问ds编写wdm的一个问题
我是一个新手,想问一下,我用ds向导建立PCI的wdm框架,中间要设MemoryRange0,请问,设好后程序对MemoryRange0的读写是针对一下哪个内存空间的?
1、PCI配置空间 2、Local配置空间 3、CS0内存空间 不明白,请高手指点一下 |
|
沙发#
发布于:2002-11-21 20:49
我是一个新手,想问一下,我用ds向导建立PCI的wdm框架,中间要设MemoryRange0,请问,设好后程序对MemoryRange0的读写是针对一下哪个内存空间的? 你要看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] |
|
板凳#
发布于:2002-11-22 00:18
[quote]我是一个新手,想问一下,我用ds向导建立PCI的wdm框架,中间要设MemoryRange0,请问,设好后程序对MemoryRange0的读写是针对一下哪个内存空间的? 你要看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地址线加译码器。 |
|
地板#
发布于:2002-11-22 10:13
我是新手,谈谈看法! 部队的各位指正!
PciConfig.BaseAddressIndexToOrdinal(0);中的0-5其实是由BAR的序号决定的,他的顺序和类型可以用softICE查到。 因为驱动程序是以硬件为基础的,所以一切的实现应该以硬件的实际为出发点。当PCI配置空间内的基址寄存器0对应一个64K的Mem,我们就将BAR0付给MemoryRange0,MemoryRange0只是一个名称,你可以另起一个名字叫小狗0也没问题! 请解释一下Local Address Space 和 CS 至两个概念我很模糊! ;) |
|
|
地下室#
发布于:2002-11-22 14:25
我是新手,谈谈看法! 部队的各位指正! 就我的理解,PCI配置空间的基址寄存器0应该是Local的配置空间吧,因此就不能在对应到一个64k地mem。 Local地址空间我理解是Local上可寻址的空间,它包括了cs的空间。 不知道对不对,请高手指正。 |
|
5楼#
发布于:2002-11-22 14:33
偶还是不懂你的local 和cs 特别是cs! 不是反恐精英的缩写吧! :D
|
|
|
6楼#
发布于:2002-11-22 18:08
偶还是不懂你的local 和cs 特别是cs! 不是反恐精英的缩写吧! :D 我要被你气死了,cs不就是chip select么? |
|