[uboot] (第一章)uboot流程——概述
2025-01-24 来源:cnblogs
一、bootloader & uboot
1、bootloader的概念
Bootloader是在操作系统运行之前执行的一段小程序。而这段小程序的最终目的,正确地设置好软硬件环境,使之能够成功地引导操作系统。
2、bootloader的核心功能
bootloader的核心功能就是引导操作系统,部分工作如下
初始化部分硬件,包括时钟、内存等等
加载内核到内存上
加载文件系统、atags或者dtb到内存上
根据操作系统启动要求正确配置好一些硬件
启动操作系统
3、bootloader的monitor功能
上述2是bootloader的核心功能,也就是引导操作系统的功能。
但是部分bootloader还支持monitor功能,提供了更多的命令行接口,具体部分功能如下:
进行调试
读写内存
烧写Flash
配置环境变量
命令引导操作系统
4、嵌入式几种常见的bootloader
uboot
这也是最常见的bootloader,开源,常用于ARM,MIPS等平台。
支持monitor功能,也是在项目project X中,使用的bootloader
所以后续两节会针对这个bootloader进行说明superboot
不开源,友善之臂的tiny210代码中默认使用这个bootloaderLK(Little Kernel)
常用于高通平台,支持monitor功能。
二、uboot-spl & uboot
1、uboot-spl
由uboot编译生成,对应于BL1阶段,也就是BL1的镜像,uboot-spl.bin。
根据《[project X] tiny210(s5pv210)上电启动流程(BL0-BL2)》,其代码运行于IRAM中
主要工作有:
初始化部分时钟(和SDRAM相关)
初始化DDR(外部SDRAM)
从存储介质上(比如SDeMMCnand flash)将BL2镜像加载到SDRAM上
验证BL2镜像的合法性
跳转到BL2镜像所在的地址上
后续会从编译和代码流程两方面来介绍uboot-spl。
对应文章:
《[uboot] (第二章)uboot流程——uboot-spl编译流程》
《[uboot] (第三章)uboot流程——uboot-spl代码流程》
2、uboot
由uboot编译生成,对应于BL2阶段,也就是BL2的镜像,uboot.bin。
根据《[project X] tiny210(s5pv210)上电启动流程(BL0-BL2)》,其代码运行于SDRAM中.
主要工作有:
初始化部分硬件,包括时钟、内存等等
加载内核到内存上
加载文件系统、atags或者dtb到内存上
根据操作系统启动要求正确配置好一些硬件
启动操作系统
monitor工作,主要是处理命令行的命令,以下是部分操作:
flash操作
环境变量操作
启动操作
后续会从编译、代码整体流程以及部分功能的具体流程来介绍uboot-spl。
- 六大全新产品系列推出,MCX A微控制器家族迎来创新
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 模组复用与整机重测在SRRC、CCC、CTA/NAL认证中的实践操作指南
- 有源晶振与无源晶振的六大区别详解
- 英飞凌持续巩固全球微控制器市场领导地位
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 蓝牙信道探测技术原理与开发套件实践
- Microchip 推出生产就绪型全栈边缘 AI 解决方案,赋能MCU和MPU实现 智能实时决策
- 从控制到系统:TI利用边缘AI重塑嵌入式MCU的边界
- LoRa、LoRaWAN、NB-IoT与4G DTU技术对比及工业无线方案选型分析




