我正在进行第一阶段的引导加载程序。我对此有一些疑问。首先,复位后的引导顺序如下:
遵循Nand Flash Controller的初始时钟配置和设置时钟。
我的问题是
请帮助理解它。另外,请提供任何能够更好地理解启动顺序的链接。
非常感谢您的支持。
答案 0 :(得分:0)
MMU将在启动时被禁用,因此第3步看起来是多余的。基于有限的信息,我将尝试证明逻辑:
在主引导加载程序执行结束时,代码将跳转到辅助引导加载程序。如果未提供辅助引导加载程序,或者辅助引导加载程序在设置新异常向量之前混淆了某些内容;如果指令效果为mov pc,则会发生#0(跳转到空函数指针);然后主引导加载程序将从步骤1重新启动。
缓存可能已损坏,MMU可能已开启,此时无法猜测。因此,如果引导加载程序现在必须开始清理,则需要执行步骤1 - 3以确保环境是干净的以执行。这看起来像是一种必要的预防措施。
Bootloader在功能和架构方面有很大差异。没有真正标准化的方法来做到这一点。所以唯一真正的选择是阅读代码并提出问题。