通过对PCI寄存器的设置,内存映射了256M的内存空间。通过设备管理器可以看到内存范围是0xC0000000-0xCFFFFFFF(正好256M)驱动里通过对采集卡配置空间的基地址寄存器BaseAddresses[1]访问可以得到0xC0000000这个地址,现在我的问题是0xC...
全文
回复(12) 2009-08-21 15:22 来自版块 - 非USB硬件驱动开发
表情
noregister顶起这个帖子,希望高手继续解答疑问(2012-08-19 23:16)
xiaoxiao问个问题: 如果PCI卡要在操作系统中映射256M的内存空间,那么机箱上插8块这样的卡,操作系统就要拿出2G的内存空间,这样操作系统自己、操作系统上的其它应用程序不就没有了内存。如果我的机子只有1G的物理内存,那么整个系统的性能岂不是非常低下? (2010-01-29 10:49)
philoman楼主没有说明所用的桥接芯片;若是PCI9054或与之类似的芯片,其PCIBAR0/PCIBAR1映射的是PCI9054的配置寄存器空间,通过这两个基址+offset可以访问PCI9054的内部寄存器; PCIBAR2/PCIBAR3用于访问Local侧的两个地址空间,分别与LS0...(2009-12-08 21:40)
lee922@gmail.co不可以,它不是物理地址(2009-09-27 11:54)
Xuefeng引用第7楼shirullan于2009-08-26 09:21发表的 回 6楼(Xuefeng) 的帖子 : 物理地址应该在START_DEVICE的时候就获取到了,也就是那个什么ResourcesRaw和ResourcesTranslated里面包含对应资源的PHYSICAL_...(2009-08-27 09:03)
shirullan物理地址应该在START_DEVICE的时候就获取到了,也就是那个什么ResourcesRaw和ResourcesTranslated里面包含对应资源的PHYSICAL_ADDRESS这个参数,你将他们保存在DEVICE_EXTENSION中就可以了(pdx->Memory...(2009-08-26 09:21)
Xuefeng引用第5楼shirullan于2009-08-25 09:39发表的 : 通过设备管理器看到的地址以及地址范围,是系统地址,也就是在PCI总线驱动程序作用下,对PCI设备的配置寄存器进行分析后获取的设备资源的映射后地址。 [图片] 这个地址可以用来进行DMA传输吗?需要转化为...(2009-08-25 14:40)
shirullan通过设备管理器看到的地址以及地址范围,是系统地址,也就是在PCI总线驱动程序作用下,对PCI设备的配置寄存器进行分析后获取的设备资源的映射后地址。(2009-08-25 09:39)
Xuefeng引用第3楼skymelai于2009-08-23 09:41发表的 : 我有个问题想请问一下楼主,既然是在驱动里面,为什么还得把物理地址映射成线性地址呢? 物理地址和线性地址是什么关系呢?? [图片] DMA传输使用物理地址,而应用程序使用线性地址啊。(2009-08-24 08:40)
skymelai我有个问题想请问一下楼主,既然是在驱动里面,为什么还得把物理地址映射成线性地址呢? 物理地址和线性地址是什么关系呢??(2009-08-23 09:41)

返回顶部