evergreen
驱动牛犊
驱动牛犊
  • 注册日期2002-04-16
  • 最后登录2007-09-24
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:3997回复:8

还是有关内存映射的问题

楼主#
更多 发布于:2002-11-11 19:03
小弟这些天正研究MMU。有几个问题,请大哥们解释。
我在写一个PCI卡的驱动程序。在初始化PCI阶段,需要把从BAR0中得到的基地址做映射(sysMmuMapAdd)。这些我做好了。我想问的是:

1,在没有映射之前,我访问某个地址,就一定会出错,一般是Page Fault;当完成了映射之后,我随便的任意的访问一个地址,都可以得到内容而不出错,这是为什么?

2,我下一步想为DMA分配一片地址,我看到在Linux中是用pci_alloc_consistent,作用是分配一块空间,使得从CPU和总线上看这块空间内容是一致的同步的,无论是谁修改了,另一方都知道。我不知道在VxWorks下用什么函数完成相同的功能。

3,为什么要映射呢?不映射就不能访问设备上的内存?还有PCI上的I/O空间和内存空间到底在哪?是不是就是I/O断口和自带的内存,必须映射到系统的I/O空间和主内存才能访问?

谢谢!!!
向大哥们学习!

最新喜欢:

algumalgum
evergreen
驱动牛犊
驱动牛犊
  • 注册日期2002-04-16
  • 最后登录2007-09-24
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-12 09:04
motif说得我有一定了解,不过还是谢谢你,我从中是有收获的。
能不能具体解释一下我提的问题?谢谢
evergreen
驱动牛犊
驱动牛犊
  • 注册日期2002-04-16
  • 最后登录2007-09-24
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-13 14:28
没人知道吗?高手呢?
游客

返回顶部