将虚拟地址映射到物理地址的含义是什么?

时间:2014-02-07 09:12:30

标签: linux memory-management linux-device-driver ioremap

我正在使用“ioremap”来映射Ti AM3359数据表中GPIO端口的地址。 代码运行正常。

问题:

1>问题是,为什么我们需要将虚拟地址映射到物理地址?    是因为物理地址是我们想要访问的硬件的真实地址吗?

2 - ;如果以上情况属实,那么为什么数据表不直接给出物理地址。

3> “ioremap”返回的物理地址在具有不同RAM量的不同板中会有所不同吗?

2 个答案:

答案 0 :(得分:1)

至于你的第一个问题,你使用ioremap的原因是因为内核的地址空间与物理地址空间不对应。您需要将物理页面映射到虚拟地址空间,以便能够解决它们。这就是ioremap的作用。

至于你的第二和第三个问题,我不知道你的数据表给出或不给出的内容。 :)

通常情况下,我希望硬件数据表能够提供物理地址,除非必须通过总线特定机制找到或配置物理地址。你的实际指定的是什么,如果没有?

您可能需要阅读this以获取更多信息。

答案 1 :(得分:1)

  1. 因为内核在虚拟地址上运行而不在物理地址上运行
  2. 在我的数据表中只有物理地址
  3. afaik ioremap返回映射您的实际地址的虚拟地址