pci IO地址空间与Momery地址空间

zxk111zxk 2012-12-21 05:02:49
PCI的基址寄存器(BA0-BA5)可以把PCI设备配置为IO地址空间和Momery地址空间。这两种地址空间都什么不同?被配置为不同地址空间的PCI设备有什么不同?请大家赐教!
...全文
1256 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ymc268 2013-01-29
  • 打赏
  • 举报
回复
我也正对这个问题困扰 一般是不是就是用memory 空间访问
curious_cat 2012-12-25
  • 打赏
  • 举报
回复
你使用什么芯片实现PCI桥的? PLX的ASIC芯片还是FPGA? 若是PLX的桥片的话,需要做地址译码和EEPROM编程; 若是使用FPGA的话,需要配置PCI IP核;在逻辑中对LOCAL BUS地址进行译码; 若要交流也可以给我发MEAIL: 1560_46151 AT QQ.COM
xichengyi 2012-12-24
  • 打赏
  • 举报
回复
网上有相关的PCI内存映射的程序实例,程序中有对PCI配置空间的操作,改改就可以了。内存映射成功后,直接对内存操作。当然对PCI配置空间的配置,一般有对应的EEPROM,将配置信息写到EEPROM中,系统上电后,BIOS读取EEPROM中的配置信息,写入PCI配置空间,在初始化程序中,根据PCI配置空间的信息,进行相应的初始化操作,当然包括内存映射和中断挂接之类的。 找些对PCI配置的论文来看看,同时结合PCI规范中的相关内容,很好理解的! 希望以上能给你些许启发!
zxk111zxk 2012-12-24
  • 打赏
  • 举报
回复
引用 1 楼 curious_cat 的回复:
有几点: 1 IO空间有限;虽说X86处理器的IO空间可以寻址4G;但是windows系统里给外设分配的IO空间共64KB; 所以就要求单个PCI设备若使用了IO空间,其大小不要超过256字节; MEMORY空间则没有这个限制,受限于操作系统能够管理的内存大小; 2 在驱动程序里面访问IO空间,可以直接使用IO指令访问; 在驱动程序里面访问memor……
curious_cat,您好!因为我刚开始接触PCI总线设备的开发,虽然看了很多资料,但是有些东西还是模棱两可的!所以还有问题想请教你一下!我开发的cPCI板子有以下几个功能要实现,不知道怎么配置PCI基址寄存器和本地配置寄存器,请指教。实现的功能有,512Mbit的sdram、32MBit的sram、6通道的AD、用82527为CAN总线控制器的CAN总线!如若能指教,万分感谢!
zxk111zxk 2012-12-22
  • 打赏
  • 举报
回复
curious_cat,您好!因为我刚开始接触PCI总线设备的开发,虽然看了很多资料,但是有些东西还是模棱两可的!所以还有问题想请教你一下!我开发的cPCI板子有以下几个功能要实现,不知道怎么配置PCI基址寄存器和本地配置寄存器,请指教。实现的功能有,512Mbit的sdram、32MBit的sram、6通道的AD、用82527为CAN总线控制器的CAN总线!如若能指教,万分感谢!
curious_cat 2012-12-21
  • 打赏
  • 举报
回复
有几点: 1 IO空间有限;虽说X86处理器的IO空间可以寻址4G;但是windows系统里给外设分配的IO空间共64KB; 所以就要求单个PCI设备若使用了IO空间,其大小不要超过256字节; MEMORY空间则没有这个限制,受限于操作系统能够管理的内存大小; 2 在驱动程序里面访问IO空间,可以直接使用IO指令访问; 在驱动程序里面访问memory 空间,需要先将其物理地址(physical address)映射到虚拟地址(virtual address),然后才能访问; 3 memory 空间访问的时候可以支持burst, IO空间访问的时候只能一个一个访问,所以从性能上看,memory空间访问的性能要高于IO空间。

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧