ahhww
驱动牛犊
驱动牛犊
  • 注册日期2004-12-02
  • 最后登录2006-07-13
  • 粉丝0
  • 关注0
  • 积分38分
  • 威望6点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1774回复:7

请教关于PCI地址空间的一个问题

楼主#
更多 发布于:2005-04-15 15:22
  PCI地址空间分为内存空间,I/O空间,配置空间.
  那么这三个地址空间如何区分呢?或者说PCI总线如何去分配这三个地址空间呢?
  请高手指教:)

 
zhangdesheng
驱动牛犊
驱动牛犊
  • 注册日期2003-04-09
  • 最后登录2005-04-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-04-16 09:56
我用一个非常简单的方法,用windriver,检测一下硬件设备就知道资源怎么分配了,另外,你可以先写一个测试的驱动,在检测资源的时候,看看分配的是那种资源,或者你就把驱动写的复杂点,假设这几种资源都存在
zhangdesheng
驱动牛犊
驱动牛犊
  • 注册日期2003-04-09
  • 最后登录2005-04-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-04-16 09:59
PCI地址空间分为内存空间,I/O空间,配置空间.
  那么这三个地址空间如何区分呢?或者说PCI总线如何去分配这三个地址空间呢?
  配置空间 用来存储pci的配置信息的,这个不用自己来访问的

    内存空间,I/O空间 是对pci设备的内部寄存器的映射。
ahhww
驱动牛犊
驱动牛犊
  • 注册日期2004-12-02
  • 最后登录2006-07-13
  • 粉丝0
  • 关注0
  • 积分38分
  • 威望6点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-04-16 20:22
我想查看设备的配置信息,那该咋办? :(
lucky_eagle
驱动牛犊
驱动牛犊
  • 注册日期2004-07-14
  • 最后登录2007-05-12
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望5点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-04-18 15:17
说一下我做的项目的配置:配置空间基址为0,直接利用偏移进行配置访问,io空间基地址是自己在配置空间的io映射寄存器中设置,设为0x2000000,配置空间中的memery映射寄存器没有设置,为0
zhangdesheng
驱动牛犊
驱动牛犊
  • 注册日期2003-04-09
  • 最后登录2005-04-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-04-28 13:36
pci地址空间只分两种
内存空间或I/O空间只能存在一种 是对pci设备的内部寄存器的映射。
PCI的配置空间存储的是配置信息
你可以通过配置空间的基址寄存器来区分到底是I/O映射还是内存映射,基址寄存器的低0位代表用什么方式,0代表内存映射,1代表I/O映射,
读取配置信息,再WDM驱动中通过发送自己定义的irp,IRP_MN_READ_CONFIG  
IRP_MN_WRITE_CONFIG  

读写内存地址空间用READ_REGISTER_BUFFER_UCHAR等函数
读写i/o端口映射空间用READ_PORT_UCHAR等函数
zhangdesheng
驱动牛犊
驱动牛犊
  • 注册日期2003-04-09
  • 最后登录2005-04-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-04-28 13:39
如果我回答对了,给点分数给我,我回答的问题都没有人给我分数,不公平
Dable
驱动牛犊
驱动牛犊
  • 注册日期2003-05-26
  • 最后登录2008-07-29
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望6点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-05-31 10:13
如果我回答对了,给点分数给我,我回答的问题都没有人给我分数,不公平
你说错了,不是I/O和内存空间只有一个存在,可以同时都有的!
游客

返回顶部