2014-09-24 119 views
1

我正在使用trustzone(ARM),并且与linux内存访问不同,受信任的小程序无法访问虚拟物理内存映射。它严格处理物理记忆。虚拟内存到物理内存

我将如何去从虚拟地址转换为物理地址?

+0

为什么你需要将虚拟翻译成物理? – osgx 2014-09-24 21:09:53

+0

就像原来的文章所说,在trustzone中运行的代码无法访问虚拟物理内存映射。当调用trustzone时,CPU停止处理。允许在CPU上运行的唯一东西是受信任的applet。主机操作系统被逐字停止。所以,无法访问映射。 – MarkP 2014-09-24 21:16:45

+0

哪个映射?每个用户程序都有自己的映射,而不可信的内核拥有自己的映射。 – osgx 2014-09-24 23:41:54

回答

0

所以,如果我明白你不知道你的应用程序可以使用哪个存储区,因为它是从CPU中设置的虚拟地址空间分离的?

在我看来,你只有两种选择:

  • 不知怎么告诉的内存(物理)段保留应用程序的操作系统。假设从0xfff0到0xffff
  • 带映射的Page Table通常位于内存中内核的末尾。尝试获取该地址,并且可以搜索它以获得免费的地址空间(内存块)。