我对ARM bootloader有些怀疑。
答案 0 :(得分:0)
是否在引导加载程序中启用或禁用了缓存? 这一切都取决于引导加载程序的体系结构。但通常,启用缓存(特定指令缓存)允许“快速”执行。因此,如果boot-loader需要重复执行某些任务,例如解密二进制等,然后'快速'执行会有所帮助。
为什么需要在引导加载程序中启用/禁用缓存?会发生什么?
上面已经回答了这个问题的第一部分
如果禁用缓存,当然boot-loader的行为就像普通的固件/裸机代码一样
但是如果启用了,那么boot-loader需要为MMU提供正确的映射表,所有预防措施,例如SFR区域都不应该启用缓存等等。
谁将在bootloader中管理缓存?在什么基础上将进行缓存输入?
缓存无论如何都是由MMU管理的。但如上所述,映射需要由引导加载程序或任何执行实体提供给MMU,以便根据地址范围启用或禁用缓存。 ARM为内存映射提供了多个级别的粒度,因此可以根据需要定义内存部分,并且可以精确控制缓存的行为。