关于pci类芯片寄存器读写问题。

lzqjfans   2010-2-2 09:42 楼主
各位好!
问题描述如下:
寄存器:base address register0
1 先对其连续几次读;
a  Value c8501093
b  Value 10
c  Value c8501093
d  Value 10
e  Value c8501093
f  Value 10

2 对其写全1
3 再进行连续读;
a  Value fffff810
b  Value c8501093
c  Value fffff810
d  Value c8501093
e  Value fffff810
f  Value c8501093

4 根据手册c8501093是设备号,厂商号;而偏移0处读出值:c8501083.

怎么每次读出的值不同呢?
我哪里犯了错误呢?
万分感激!

怎么没人来看贴啊 ?
我是用sysPciConfigRead()sysPciConfigWrite()来指定设备芯片内的寄存器的偏移,直接读和写的。

回复评论 (4)

问题我自己解决了,
有两句话和大家分享:
1 弄清楚自己需要做哪些工作
2 搞清楚所用的开发平台

感谢NoGoodWords的参与。
点赞  2010-4-15 14:45
把pci设备分为两部分,这个寄存器所处的部分,负责和处理器中pci部分连接。
该寄存器的高24位是可读写的,用于指示pci 存储空间的基地址。
写入全1不应该变才对啊?

在线等大师指点!多谢了
点赞  2010-2-2 10:00
controle寄存器相应的位的使能操作也做了.
点赞  2010-2-2 11:43
看读ID号  vendor 等值看看是不是正确的。
点赞  2010-2-23 09:41
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复