一,XIP设备
-
一上电,CPU必定从XIP设备得到第1条指令。
-
XIP设备是指一种可以直接在存储器中执行程序代码的设备,而不需要将代码复制到内存中。XIP的全称是eXecute In Place,即芯片内执行。这类设备包括片内的SRAM、NOR Flash、BootROM等。XIP设备的启动方式是系统上电之后CPU执行的第一条指令是直接在非易失性存储器中执行的,比如被存储在flash中的启动程序,便可以直接在flash中执行,而不需要拷贝到内存中运行。这种启动方式的特点是节省了从存储器到内存的复制过程,从而减少了启动时间和资源消耗。
-
CPU上电之后可以直接从XIP设备中取指令到CPU中运行,看上去像是在flash或者ram中执行。
-
Nand Flash是非XIP设备,CPU不能直接从nand flash中取指令运行。
二,BootROM的作用
号称支持Nand启动、支持SD卡启动、支持USB启动、支持UART启动的芯片,里面必定有BootROM。
BootROM:硬件初始化、把程序从非XIP设备复制进RAM,从RAM里执行。
如何支持多种启动方式(SD卡、EMMC、USB、UART启动):
-
方法1:芯片有boot pin,决定使用哪个外设。bootrom根据引脚决定读取哪个设备的程序
-
方法2:芯片有boot pin,决定多种外设的尝试顺序
示例顺序1:SD、EMMC、USB
示例顺序2:EMMC、SD、USB
示例顺序3:USB
三,完整的u-boot复制进内存
BootROM被用来启动用户程序,用户程序可能有几百KB、几MB,但是片内的RAM只有几KB:
-
方法1:
BootROM从启动设备读取用户程序的前几KB到SRAM,运行它;
这前几KB的代码负责:初始化DDR、把完