为什么需要在引导加载程序中启用/禁用缓存?

时间:2016-09-10 02:19:24

标签: bootloader

我对ARM bootloader有些怀疑。

  1. 是否在引导加载程序中启用或禁用了缓存?
  2. 为什么需要在引导加载程序中启用/禁用缓存?会发生什么?
  3. 谁将在bootloader中管理缓存?在什么基础上将进行缓存输入?

1 个答案:

答案 0 :(得分:0)

  1. 是否在引导加载程序中启用或禁用了缓存? 这一切都取决于引导加载程序的体系结构。但通常,启用缓存(特定指令缓存)允许“快速”执行。因此,如果boot-loader需要重复执行某些任务,例如解密二进制等,然后'快速'执行会有所帮助。

  2. 为什么需要在引导加载程序中启用/禁用缓存?会发生什么?
    上面已经回答了这个问题的第一部分 如果禁用缓存,当然boot-loader的行为就像普通的固件/裸机代码一样 但是如果启用了,那么boot-loader需要为MMU提供正确的映射表,所有预防措施,例如SFR区域都不应该启用缓存等等。

  3. 谁将在bootloader中管理缓存?在什么基础上将进行缓存输入?
    缓存无论如何都是由MMU管理的。但如上所述,映射需要由引导加载程序或任何执行实体提供给MMU,以便根据地址范围启用或禁用缓存。 ARM为内存映射提供了多个级别的粒度,因此可以根据需要定义内存部分,并且可以精确控制缓存的行为。

相关问题