ARM CPU如何加载引导加载程序?

时间:2017-01-21 19:26:13

标签: arm boot bootloader

据我所知,处理器可以直接访问RAM。启动时设备的RAM为空,CPU不知道从哪里加载引导加载程序到RAM以执行它。即便它也无能为力,因为我认为调用堆栈也应该是空的。 然而,如何将引导程序复制到RAM中以便进一步执行?

这应该发生在智能手机等嵌入式设备上。在x86 PC上,BIOS负责将MBR部分从磁盘加载到RAM。

2 个答案:

答案 0 :(得分:0)

你对x86有同样的问题。和一般的解决方案一样(与任何其他处理器一样),将rom / flash放在处理器引导的地址空间和/或其向量表所在的位置。

还有一些其他解决方案,比如让其他逻辑从一些非易失性存储中读取并将其置于引导/向量空间,或者其他逻辑为某些其他处理器/计算机提供接口以下载到板/芯片中然后释放重置。

答案 1 :(得分:0)

RAM中的引导加载程序是辅助引导程序;总是存在某种ROM中的代码,其中包含加载辅助引导程序的主引导程序。通常,ROM本身就是芯片上的掩模ROM。

通常在ARM应用处理器(如Cortex-A)上,主引导程序会将代码从NAND闪存或SD卡加载到RAM。在任何情况下,ARM Cortex-M通常都直接从ROM运行代码。