资 源 简 介
以ARM 为处理器的嵌入式系统,在进入操作系统之前需要执行一段初始化代码,叫做Boot。它主要负责系统的初始化,包括:中断向量初始化、时钟初始化、MPU 初始化、各种处理器模式的堆栈初始化和Image 文件的RW 段与ZI 段的初始化。处理器每次处理中断都要从非易失性存储器读中断向量表,Remap(重映射)操作可以把中断向量表映射到更快、更宽的RAM 中,从而加快了启动速度和中断响应速度,也使更改中断向量表成为可能。
Boot 的意思是“引导”,它是嵌入式系统上电或复位后处理器最开始执行的动作。Boot的作用是将处理器引导至操作系统的入口,但是在进入操作系统之前引导程序需要做一些必要的初始化。这些初始化代码是操作系统在处理器上正常运行的必要条件,也是操作系统和硬件平台的连接纽带。由于和硬件紧密相关,所以这部分代码一般采用ARM 的汇编指令编程实现。
系统每次上电或复位后,处理器都会从0x0 地址处取指,因此必须保证0x0 地址处有可以正常执行的指令。一般厂商会将中断向量表固化到ROM(或其它非易失性存储器)里,并将ROM 的地址映射到0x0。但是,为了加快启动速度和中断响应速度,也方便可以更改中断向量表,往往把向量表映射到RAM 中。但是中断向量表的开始地址是由ARM 架构决定的,必须位于0x0 处,因此,必须把RAM 映射到0x0,这个过程就叫Remap。