阅读:1716回复:8
寄存器配置方面的疑问
假设我定义的局部地址空间0(LASORR)和局部地址空间1(LAS1RR)都为IO空间,范围大小都为32字节,而且它们的局部基址寄存器值也一样(即局部基地址一样),系统BIOS为这两个局部空间分配地址,并把基址写进PCIBAR2和PCIBAR3这两个PCI配置寄存器,那么我根据PCIBAR2和PCIBAR3提供的基址(或者基址加上相同的偏移地址)访问PCI总线时,映射到局部总线后,是不是访问到同一个单元了???
|
|
沙发#
发布于:2004-07-16 23:47
不会是同一单元;存储器操作和I/O操作用读和写信号来区别,不回冲突.
答错了,别介意!! |
|
板凳#
发布于:2004-07-17 09:38
谢谢你的回答。但如果我只对这两个地址读或者写呢??
|
|
地板#
发布于:2004-07-18 15:04
我怎么觉得是读写同一单元啊
|
|
地下室#
发布于:2004-07-18 21:02
我也是新手,答错了勿怪,仅限于我的理解:
BIOS为LAS0RR和LAS1RR分配的地址应该是不一样的,也就是说PCIBAR2和PCIBAR3的值是不一样的。他们的后半部分,也就是可编程的部分是一样的,不过高位部分不一样。如果你往一个PCIBAR2的地址读写数据,是通过LAS0RR访问LOCAL,如果往PCIBAR3的地址读写数据,是通过LAS1RR访问LOCAL,至于访问的空间是否一样,就要看具体的设计了,硬件可以把这个做成一样的,也可以做成不一样的。 我做过一个卡,分配的是MEMORY,给BAR0和BAR1都分配1M的MEMORY(20位),用SOFTICE的PCI命令看的时候,一个地址是E8000000,一个地址是E8100000,不知道对你的问题有没有帮助。 |
|
|
5楼#
发布于:2004-07-20 09:40
谢谢cangyue。我本来也是这样想的,只是不敢肯定,现在看了你的回答,我就能肯定了。只要PCIBAR对应的LOCAL SPACE一样,不管从哪个PCI地址段去访问,它们对应的LOCAL SPACE就一样。对CS寄存器的理解也一样,只是CS寄存器包含了地址和范围而已。其实这本来就很简单,只是刚开始学9052,有点懵而已。谢谢各位!
|
|
6楼#
发布于:2004-07-21 16:19
狂灌水~~~~~~~~~~~~~狂灌水~~~~~~~~~~~~~狂灌水~~~~~~~~~~~~~狂灌水~~~~~~~~~~~~~狂灌水~~~~~~~~~~~~~狂灌水~~~~~~~~~~~~~狂灌水~~~~~~~~~~~~~狂灌水~~~~~~~~~~~~~狂灌水~~~~~~~~~~~~~狂灌水~~~~~~~~~~~~~狂灌水~~~~~~~~~~~~~狂灌水~~~~~~~~~~~~~狂灌水~~~~~~~~~~~~~狂灌水~~~~~~~~~~~~~狂灌水~~~~~~~~~~~~~狂灌水~~~~~~~~~~~~~狂灌水~~~~~~~~~~~~~狂灌水~~~~~~~~~~~~~狂灌水~~~~~~~~~~~~~狂灌水~~~~~~~~~~~~~
|
|
|
7楼#
发布于:2004-07-30 14:46
用户被禁言,该主题自动屏蔽! |
|
8楼#
发布于:2004-07-30 18:37
我看到好几次了,总是在技术版块灌. :D
|
|
|