cathy12
驱动牛犊
驱动牛犊
  • 注册日期2007-01-19
  • 最后登录2007-03-27
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:2560回复:2

[求助]::怎么进行PCI 地址映射,急??

楼主#
更多 发布于:2007-01-19 17:41
  tornado2.2  vxworks5.5   目标机为单板机pentium4,

加电后,我的PCI卡,用pciFindDevice验证是正确的,

然后看到其中的base address0为0xfb800000,

用pciConfigInLong/OutLong函数可以对配置空间进行读写正常。

但是不清楚这个空间怎样映射到单板机的内存上???

我查了单板机对应的BSP文件没有发现有PCI_MEMORY_SPACE这个值。

也没有sysbyspci.c这个文件。

请大家帮帮忙呀。感谢!!
hwybird
论坛版主
论坛版主
  • 注册日期2006-11-11
  • 最后登录2010-08-31
  • 粉丝0
  • 关注0
  • 积分988分
  • 威望359点
  • 贡献值0点
  • 好评度96点
  • 原创分0分
  • 专家分0分
沙发#
发布于: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);
                }
liuhaifeng0209
驱动牛犊
驱动牛犊
  • 注册日期2007-01-15
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分60分
  • 威望7点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-07-19 12:12
地址映射去读它的BSP 中的文件config.h和BSP中以板卡名字命名的BSP文件,里面会列出你的PCI空间0映射到MEMORY空间的那里,然后按照其规则就可以了。
游客

返回顶部