【问题标题】:Memory mapping on system reset系统重置时的内存映射
【发布时间】:2012-11-14 03:36:00
【问题描述】:

据我了解,代码指令的地址是虚拟地址,但是为了访问各种设备(例如 RAM,Parallel NOR Flash),这些虚拟地址需要转换为物理地址,这个任务由 MMU 完成.问题是这个翻译过程在系统复位时如何表现(上电时,我认为 MMU 中还没有条目),以便可以从并行 NOR 闪存中获取第一条指令并开始执行。任何人都可以解释这个过程(对于任何 CPU 架构 ARM、PowerPC ......,我只是猜测这种行为在架构中是通用的)。任何建议表示赞赏。提前致谢!

【问题讨论】:

    标签: embedded device-driver mmu


    【解决方案1】:

    上电时,实际上 MMU 将被禁用。这么多是通用的。

    要访问 NOR 闪存,(至少)某些地址空间会有一个默认映射。第一条指令通常会从 0xFFFF0000 (ARM) 或 0xFFFFFFFC (Power PC) 及其附近获取。但是有一些 pinstrap 选项会影响这一点。启动处理器并不是真正的通用。

    还有很多其他选项(NAND 闪存、SPI ROM、MMC)用于存储引导代码。对于一般概念,Hallinan 包含有关引导的一章。有关详细信息,您必须查看特定 CPU 的技术手册,例如OMAP4 TRM 是 ARM 的示例,然后查找描述启动过程的部分。

    【讨论】:

    • 您好JoeKul,非常感谢您的详细解释和参考资料!似乎在引导加载程序代码真正从复位向量开始之前,引导程序(CPU 引导选项)会进行一些初始化,包括将 TLB 条目映射到适当的引导设备、读取引导加载程序代码并最终跳转到复位向量。如果这个结论不正确,请纠正我。再次感谢!
    猜你喜欢
    • 2012-07-06
    • 2011-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-23
    • 1970-01-01
    相关资源
    最近更新 更多