zoukankan      html  css  js  c++  java
  • [uboot] (第一章)uboot流程——概述

    http://blog.csdn.net/ooonebook/article/details/52939100

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

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

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

    一、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)
      • 从存储介质上(比如SDeMMC and 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整体代码流程》

  • 相关阅读:
    cpu capacity、task_util、cpu_util是如何计算的?
    QTI EAS学习之find_energy_efficient_cpu
    Linux内核进程调度overview(1)
    Ondemand和Interactive gonernor工作逻辑简述
    利用init进程监控底层节点的方法架构
    Sched_Boost小结
    SchedTune
    Cpusets学习
    搭建SpringCloud微服务框架:三、读取Nacos的配置信息
    搭建SpringCloud微服务框架:一、结构和各个组件
  • 原文地址:https://www.cnblogs.com/leaven/p/6296094.html
Copyright © 2011-2022 走看看