地址空间为ROM的并找出某些文件的虚拟地址读取这个问题

问题描述:

感谢。地址空间为ROM的并找出某些文件的虚拟地址读取这个问题

我很新的手臂和计算机体系结构一般很抱歉,如果这是一个基本的问题。

我花了很多时间阅读和学习的MMU和虚拟到物理地址的转换。我也学习了地址空间。只是为了确保所有的io外设(如以太网和USB)都有自己的地址以及外部RAM和ROM的权利?所以我想知道地址值,所以我阅读这个PDF文档,在这里:http://infocenter.arm.com/help/topic/com.arm.doc.den0001c/DEN0001C_principles_of_arm_memory_maps.pdf,但它很混乱。我无法清楚地看到它在ROM中的确切地址空间,以及我发现的地址空间在某些手机上没有增加到128GB。

你能不能帮我做的这一切有意义吗?我得到这一切都错了吗?我如何找到所有外设,RAM和ROM的确切地址,以便我可以在代码中为这些地址做一些加载和存储功能。另外,如果我打算编码我的旧手机之一,你怎么找出某些文件和文件的虚拟地址?所以对于例子地址0x00BA FFFF到0x0AFF FFFF是针对某个音频文件的。通过这种方式探索,我学到了很多东西。再次

感谢,

威尔·史密斯

+0

这并不是真正适合这类问题的论坛。我会建议SE网络上的[*** Reverse Engineering ***](http://reverseengineering.stackexchange.com/),但这可能不太正确。查看[*所有Stack Exchange *](http://stackexchange.com/sites)网络,并尝试找到更适合与内存原则和体系结构相关的内容。 另外,我看了PDF,看起来好像不难理解。如果你喜欢,请给我发电子邮件([email protected]),但我可能会有点缓慢的回应,我甚至不应该在这里!大声笑。 – SpYk3HH

+0

忽略该文件,这是在ARM公司的一些系统设计师是怎么想的SoC设计人员应该制定出自己的内存映射,没有什么更多的是_suggestion_。您需要查看您正在处理的实际SoC的参考手册。关于最后一点,请注意,除了NOR闪存之外,您不可能直接在物理地址空间中看到“文件” - 存储通常涉及与某些外设(磁盘/ MMC/NAND闪存/等等控制器),它将从它后面的存储介质中继数据。 – Notlikethat

使得ARM处理器内核不制造芯片。他们已经或者已经拥有了一些你可以通过的外围设备,但芯片供应商通常都有自己的外围设备。值得一提的是,即使它们具有相同的核心,来自不同芯片供应商的芯片也没有相同的存储器映射,更少的外设等。我没有阅读您的链接(不好的想法是将这样的链接放在问题或答案中作为链接内容不是由*控制,可以消失,完全破坏问题或答案),但最后的例子内存映射只是一个例子。芯片和有时系统供应商的文件是需要获得一个完整的物理地址图的世界为一个芯片或系统。不要试图在其他地方重新使用该映射。这些信息只需要询问或挖掘,有时由您可能获得或可能无法获得的NDA保护。另请注意,核心上可能有多条总线,毫无疑问,系统内核外有多条总线,因此存在多个物理地址空间。然后你可以从地址空间角度将物理地址的一些高位转换为虚拟地址,并且在该模式下处理器/代码在虚拟地址上运行。 (即操作系统如Linux上运行的所有应用程序例如可以被编译为在地址0x8000运行时,MMU允许这样的事情发生,使所有的应用程序认为它们具有相同的空间,但没有它们的物理地址的冲突)

+0

谢谢你真正有帮助的答案。这现在更有意义。只是在回答这个问题时,在为供应商搜索内存映射时,我会找到物理内存映射,然后在我的代码中使用它不会是一个问题?还是我需要找到它的虚拟地址才能正常工作?此外,我还没有使用过这个网站,所以我希望我记得你的答案正确。我点击了绿色的勾号。再次感谢。 –

+0

是的,检查绿色勾号标记为“答案”。你可以取消选中它并选择另一个我认为如果有更好的答案。 –

+0

这取决于谁设立mmu,我假设你想理解并在理论上做设置。在任何一种情况下,1)是mmu设置并启用,如果不是,则使用物理地址,mmu被绕过。 2)如果mmu被启用,则虚拟到物理映射是......按照mmu的设置。毫无疑问,可以设置mmu,以便对所有或某些地址虚拟=物理。 mmu表中的每个条目都是另一个虚拟地址空间,并且在其后面有一个物理地址空间。所以这是由你或任何人设立mmu作为整体映射 –