1-uboot流程——概述

2024-08-30 17:38
文章标签 uboot 流程 概述

本文主要是介绍1-uboot流程——概述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

[uboot] (第一章)uboot流程——概述

[uboot] uboot流程系列: 
[project X] tiny210(s5pv210)上电启动流程(BL0-BL2)

建议先看《[project X] tiny210(s5pv210)上电启动流程(BL0-BL2)》,根据例子了解一下上电之后的BL0\BL1\BL2阶段,以及各个阶段的运行位置,功能。

=================================================================================

一、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代码中默认使用这个bootloader
  • LK(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)
    • 从存储介质上(比如SD\eMMC\nand 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。 
对应文章: 
《[uboot] (第四章)uboot流程——uboot编译流程》 
《[uboot] (第五章)uboot流程——uboot整体代码流程》

这篇关于1-uboot流程——概述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1121489

相关文章

Security OAuth2 单点登录流程

单点登录(英语:Single sign-on,缩写为 SSO),又译为单一签入,一种对于许多相互关连,但是又是各自独立的软件系统,提供访问控制的属性。当拥有这项属性时,当用户登录时,就可以获取所有系统的访问权限,不用对每个单一系统都逐一登录。这项功能通常是以轻型目录访问协议(LDAP)来实现,在服务器上会将用户信息存储到LDAP数据库中。相同的,单一注销(single sign-off)就是指

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

kubelet组件的启动流程源码分析

概述 摘要: 本文将总结kubelet的作用以及原理,在有一定基础认识的前提下,通过阅读kubelet源码,对kubelet组件的启动流程进行分析。 正文 kubelet的作用 这里对kubelet的作用做一个简单总结。 节点管理 节点的注册 节点状态更新 容器管理(pod生命周期管理) 监听apiserver的容器事件 容器的创建、删除(CRI) 容器的网络的创建与删除

Java 多线程概述

多线程技术概述   1.线程与进程 进程:内存中运行的应用程序,每个进程都拥有一个独立的内存空间。线程:是进程中的一个执行路径,共享一个内存空间,线程之间可以自由切换、并发执行,一个进程最少有一个线程,线程实际数是在进程基础之上的进一步划分,一个进程启动之后,进程之中的若干执行路径又可以划分成若干个线程 2.线程的调度 分时调度:所有线程轮流使用CPU的使用权,平均分配时间抢占式调度

火语言RPA流程组件介绍--浏览网页

🚩【组件功能】:浏览器打开指定网址或本地html文件 配置预览 配置说明 网址URL 支持T或# 默认FLOW输入项 输入需要打开的网址URL 超时时间 支持T或# 打开网页超时时间 执行后后等待时间(ms) 支持T或# 当前组件执行完成后继续等待的时间 UserAgent 支持T或# User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器

UMI复现代码运行逻辑全流程(一)——eval_real.py(尚在更新)

一、文件夹功能解析 全文件夹如下 其中,核心文件作用为: diffusion_policy:扩散策略核心文件夹,包含了众多模型及基础库 example:标定及配置文件 scripts/scripts_real:测试脚本文件,区别在于前者倾向于单体运行,后者为整体运行 scripts_slam_pipeline:orb_slam3运行全部文件 umi:核心交互文件夹,作用在于构建真

java集合的概述

集合就是一个容器,我们可以把多个对象放入的容器中。就像水杯(假设容量可以不断扩大)一样,你可以往水杯中不断地添加水,既然是水杯,你就不能往里添加沙子,也就是说集合中添加的对象必须是同一个类型的(引用类型,而不能是基本类型)。 看到集合的介绍会让我们的想起数组,那么集合和数组有什么区别呢? 首先,数组的大小是固定的,而集合理论上大小是不限的。 其次,数组既可以存储基本数据类型的数据,也可以存储