阅读:2560回复:2
[求助]::怎么进行PCI 地址映射,急??
tornado2.2 vxworks5.5 目标机为单板机pentium4,
加电后,我的PCI卡,用pciFindDevice验证是正确的, 然后看到其中的base address0为0xfb800000, 用pciConfigInLong/OutLong函数可以对配置空间进行读写正常。 但是不清楚这个空间怎样映射到单板机的内存上??? 我查了单板机对应的BSP文件没有发现有PCI_MEMORY_SPACE这个值。 也没有sysbyspci.c这个文件。 请大家帮帮忙呀。感谢!! |
|
沙发#
发布于:2007-01-22 19:50
在syslib.c里的#ifdef INCLUDE_PCI后面加入你的映射代码(映射代码可参考下面的例子):
pciConfigInLong (pciBus, pciDevice, pciFunc, PCI_CFG_BASE_ADDRESS_0, &memIo32); memIo32 &= PCI_MEMBASE_MASK; if (sysMmuMapAdd ((void *)(memIo32 & 0xFF000000), 0x1000000, VM_STATE_MASK_FOR_ALL, VM_STATE_FOR_PCI) == ERROR) { return (ERROR); } |
|
板凳#
发布于:2007-07-19 12:12
地址映射去读它的BSP 中的文件config.h和BSP中以板卡名字命名的BSP文件,里面会列出你的PCI空间0映射到MEMORY空间的那里,然后按照其规则就可以了。
|
|