我正在使用" ioremap"来映射Ti AM3359数据表中的GPIO端口的地址。代码正常运行。
问题:
1>问题是,为什么我们需要将虚拟地址映射到物理地址? 是因为物理地址是我们要访问的硬件的真实地址?
2>如果上面是正确的,那么为什么数据表不直接提供物理地址。
3>" IOREMAP"返回的物理地址在不同量的RAM的不同板上会有所不同吗?
至于您的第一个问题,您使用ioremap
的原因是因为内核的地址空间与物理地址空间不符。您需要将物理页面映射到虚拟地址空间中,以便完全解决它们。这就是ioremap
的作用。
至于您的第二和第三个问题,我不知道您的数据表提供或不给出什么。:)
通常,我希望硬件数据表可以提供物理地址,除非必须通过特定于总线的机制找到物理地址或配置物理地址。您的实际指定是什么,如果不是?
您可能想阅读此信息以获取更多信息。
- 因为内核在不在物理上的虚拟地址上运行
- 在我的数据表中只有物理地址
- afaik ioremap返回虚拟地址映射您的物理地址