[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整体代码流程》

[uboot] (第一章)uboot流程——概述相关推荐

  1. c语言i=5.6a=(int)i,第一章C语言概述.ppt

    <第一章C语言概述.ppt>由会员分享,可在线阅读,更多相关<第一章C语言概述.ppt(35页珍藏版)>请在人人文库网上搜索. 1.C语言程序设计,课程安排和理论教学:(419 ...

  2. 第一章 人力资源管理概述(6学时)

      人力资源管理讲稿 第一章 人力资源管理概述(6学时) 第一节 人力资源的概念 一.    人力资源的定义 1. 资源     "资财的来源"(<辞海>).     ...

  3. 大数据技术技能分析大赛——第一章 python数据分析概述

    目标:掌握python,进行数据处理.统计分析.回归建模和数据可视化. 教材:<大数据分析务实初级教程(python)## 标题> 第一章 python数据分析概述 1.数据分析概述 1 ...

  4. Python数据分析 第一章 数据分析的概述

    目录 第一章 数据分析的概述 1.数据分析的概述 1.Python在数据分析方面的优势 2.数据分析流程 3.数据分析层次 4.数据分析常见应用场景 2. Python数据分析模块 1. Numpy ...

  5. 大数据技术原理与应用——第一章 大数据概述

    第一章 大数据概述 1.1 大数据时代 1.1.1 第三次信息化浪潮 信息化浪潮 发生时间 标志 解决的问题 代表企业 第一次浪潮 1980年前后 个人计算机 信息处理 Intel.AMD.IBM.苹 ...

  6. 人工操作阶段计算机是如何工作的,第一章计算机基础概述全解.ppt

    第一章计算机基础概述全解 1.2.3 汉字编码 汉字的编码 国标码:中文内码之一,汉字信息交换的标准编码.国标码是不可能在计算机内部直接采用.于是, 汉字的机内码采用变形国标码 . 国标码:作为转换为 ...

  7. 【JAVA SE】第一章 Java语言概述、环境变量和HelloWorld

    第一章 Java语言概述.环境变量和HelloWorld 文章目录 第一章 Java语言概述.环境变量和HelloWorld 一.Java语言概述 1.Java简介 2.Java发展历史 3.Java ...

  8. [转载] 《python程序设计应用教程》第一章 python语言概述

    参考链接: Python语言的优势和应用 第一章 python语言概述 1.1 python语言简介 ① 众多的开源的科学计算软件包都提供了python的调用接口,例如:计算机视觉库OpenCV.三维 ...

  9. 计算机网络中enable,第一章 计算机网络结构概述1、 enable# conf

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 第一章 计算机网络结构概述 1.> enable# config terminal Router (config)# interface faste ...

  10. 【食品加工技术】第一章 食品加工技术概述 笔记

    [食品加工技术]第一章 食品加工技术概述 笔记 1.1 食品行业常用术语 食品 Food 传统食品 Traditional Food 天然食品 Natural Food 模拟食品 Imitation ...

最新文章

  1. .NET Core 收徒,有缘者,可破瓶颈
  2. 打脸!《陈情令》付费资源遭泄漏 腾讯视频说好的技术保障呢?
  3. Spark.2.2源码阅读: SPARK SUBMIT任务提交
  4. torch.cuda.is_aviaiable() 返回值为False的问题
  5. 翱文中华灯谜大全 v1.1 免费下载--IT man
  6. Linux原生日志系统Rsyslog详解
  7. Mysql全国省区县地区码
  8. ECharts数据可视化:从0到1的蜕变(内部技术分享总结)
  9. 弘辽科技:多多进宝怎么找团长?多多进宝怎么找推手推广?
  10. Http协议是无状态的 作者:cp_insist
  11. ESXi 6.7 封装驱动(Intel-I219V使用非vib的离线包驱动格式)
  12. 7寸显示器 树莓派4b_基于树莓派4B显示屏分类
  13. Qt静态函数中的信号和槽问题
  14. 基于vue-router的从后端动态加载菜单的实现
  15. 怎么减少计算机内存占有,还在为电脑内存占用太高而烦恼吗?教你一招轻松解决...
  16. 使用VScode简易编程
  17. 【js】三种JS截取字符串方法
  18. 微信小程序 echarts.js过大 导至错误( Error: 代码包大小为 xxxxkb,上限为 2048 kb,请删除文件后重试)
  19. 腾讯地图定位打卡功能实现
  20. 反垃圾邮件网关的选型标准考量录

热门文章

  1. Oracle踩坑之路--ORA-01861:文字与格式字符串不符
  2. 项目管理 | 可行性研究报告怎么写?这5大部分一定要在报告里呈现
  3. 短视频系统源代码,加载本地图片和加载网络图片
  4. 华硕天选1隐藏盘恢复系统
  5. 系统学习机器学习之随机场(三)--MRF,CRF及几种模型对比
  6. anchor free:CornerNet解读【目标检测】
  7. 基于Python模仿流量攻击的方法对字节编码攻击
  8. 【Vim】基本操作及命令集详解
  9. 线程中断:interrupt、interrupted、isInterrupted
  10. Python学习笔记 8