南宁最高端网站建设,关键词排名提高,都有哪些不错的网页设计网站,知乎关键词排名优化工具一、先看概念
bootROM#xff1a;一种固化在芯片内部的只读存储器#xff08;ROM#xff09;#xff0c;用于启动和初始化系统。BootROM 中通常包含了一些预先编写好的代码#xff0c;用于完成系统启动前的基本初始化和配置#xff0c;例如初始化时钟、GPIO控制器、中断…一、先看概念
bootROM一种固化在芯片内部的只读存储器ROM用于启动和初始化系统。BootROM 中通常包含了一些预先编写好的代码用于完成系统启动前的基本初始化和配置例如初始化时钟、GPIO控制器、中断控制器、存储设备SD卡、NAND Flash、SPicy Flash等硬件资源检测启动设备从启动设备中加载引导程序等。
bootRAM是一种位于芯片内部的随机存储器SRAM通常用于存储启动时需要运行的代码和数据。与 bootROM 不同的是bootRAM 中的内容可以被修改和更新。 二、芯片上电后的启动流程
芯片上电后首先会进入 bootROM 阶段。bootROM 是芯片内置的固件负责初始化各种硬件设备例如时钟、存储设备、串口、存储设备等并从存储设备如 SD 卡、NAND Flash、SPI Flash 等中加载 U-Boot 引导程序bootloader到DDR中。
这段 bootloader 程序先初始化 DDR 等外设因为bootROM 的初始化操作只是为了能够让 U-Boot 能够被正确加载并执行并不能完全代替 U-Boot 对硬件资源的初始化和配置然后将 Linux 内核从flash(或者 NANDNOR FLASHSDMMC 等)拷贝到 DDR 中最后启动 Linux 内核。 三、可能产生的疑问解答
既然 bootROM 都初始化好了 DDR为什么直接把Linux kernel加载到DDR中运行呢这样不就可以直接省略uboot了嘛 不知道你是否会有这种疑问。 其实直接使用bootROM将kerne加载到DDR中运行是可以的。但是 内存配置简单粗暴。bootROM只会根据硬件默认配置来设置DDR参数,无法进行详细的内存配置,无法使用更复杂的内存模式,可能导致内存带宽或容量无法充分利用。 设备树简单。bootROM只会使用一个简单的内置设备树,无法根据实际的硬件情况提供详细的设备树,导致内核无法正确探测和初始化所有外设。 启动参数固定。bootROM无法传递启动参数给内核,内核启动后只能使用默认参数运行,无法根据不同需求设置不同的启动参数。 升级困难。如果只使用bootROM启动,每次内核升级都需要烧写到bootROM中,无法像uboot那样通过sdcard等方式方便地升级内核。