阅读:1421回复:3
请教对9052的INTCSR的读写(急)
请教对9052的INTCSR的读写
有一个疑问:9052的内部local寄存器可以通过Mem映射和I/O映射来访问。 并且在2k的设备管理器中可以看到它的资源列表。头两个是BAR0和BAR1,分别为Mem映射空间 和I/O映射空间,大小都是固定的128字节。和DataBook上是一样的。 问题1: INTCSR寄存器的Register Offset是0x4C,但它属于BAR0还是BAR1?或者说可以通过某种办法 把它映射到BAR0或BAR1空间? 问题2: 我用的是Driverwork,在申请资源的时候定义了m_MemoryRange0和m_IoPortRange0,在初始化的 时候引用PciConfig.BaseAddressIndexToOrdinal(0)来排序。 那么如何使m_MemoryRange或者m_IoPortRange0和BAR0/BAR1联系起来。难道说我只要按这样的 方式: m_IoPortRange0.ind(0x4c, pBuffer, dwTotalSize)就可以读出INTCSR的值了么? 我试了一下,但是测试程序在读过程中出现错误 Debug Error! Program: E:\pci9052\exe\objchk\i386\Test_pci9052.exe DAMAGE: after Normal block(#47) at 0x00880F60 还请大侠们不吝指教 |
|
|
沙发#
发布于:2004-03-17 18:43
直接这样就可以了:m_IoPortRange0.ind(0x4c)。
|
|
|
板凳#
发布于:2004-03-17 21:02
谢谢,刚才测试程序读操作的时候越界了。
但是如果我想把local的寄存器映射到BAR0中该怎么做? |
|
|
地板#
发布于:2004-03-27 03:33
在EEPROM的配置中,可以选择配置到BAR0或者BAR1,或者两者都用。
|
|