关于C的IO命令访问PCI总线
最近在做关于PCI接口方面的东西。用C编写程序,部分程序如下:#define PCI_CONFIG_ADDRESS 0xCF8
#define PCI_CONFIG_DATA 0xCFC
static WORD CardPort=0x100;
想问问这个基地址0x100与这两个IO空间的寄存器0xCF8和0xCFC有什么关系,PCI卡的基地址能提前给出么?
还有一个问题是:我看到程序中多次对同一个偏移地址多次进行IO访问,这样的话第二次写的数据岂不是被第一次写的数据覆盖了。如果不覆盖的话,是什么保证第一次写到端口的数据能够及时的被读走,而不至于被第二次写的数据覆盖。部分程序:
#define CS 0x0e
b=data[i];
outpw(CardPort+CS,b);
b=b|2;
outpw(CardPort+CS,b);
delay(1);
b=b&0xfd;
outpw(CardPort+CS,b);
delay(1);
请高手指点,小弟不胜感激。