zoukankan      html  css  js  c++  java
  • Linux系统启动流程分析

    作者:郭孝星
    微博:郭孝星的新浪微博
    邮箱:allenwells@163.com
    博客:http://blog.csdn.net/allenwells
    Github:https://github.com/AllenWells

    一 系统上电和启动ROM

    NOR Flash作为启动ROM的系统启动过程

    1. NOR Flash开头处存放启动代码,程序从NOR Flash開始处启动。

    2. 配置EMI寄存器,设置好各存储器的地址和存取规则。

    3. 配置电源管理模块。各模块上电。

    4. 启动代码将位于NOR Flash中的正式运行代码拷贝到内存中。以提高运行效率。

    5. 设置PC指针,指向NOR Flash中固定地址。
    6. 设置地址映射,用0地址映射到内存RAM空间。

    7. 设置PC指针,指向RAM中初始化代码。開始运行代码。

    NAND Flash作为启动ROM的系统启动流程

    1. 上电初始。DMA默认设置将存储在NAND Flash中第一页的数据搬运到内部RAM中,然后设置PC到内部RAM開始处的地址。開始运行代码。
    2. 在启动代码中设置中断向量和硬件配置等。
    3. 将运行代码搬运到外部SDRAM或DDR=RAM,留出启动代码的位置。
    4. 将启动代码搬运到SDRAM或DDR-RAM中首址。

    5. 设置Remap。将0地址又一次映射到SDRAM或DDR-RAM首地址。
    6. 设置PC指针,開始运行正式的运行代码。

    二 Bootloader引导

    三 Linux内核引导

    非压缩内核:Image

    压缩内核:zImage

    1. 内核初始化
    2. 设备初始化
    3. 启动内核
    4. 挂载文件系统
    5. 启动用户空间进程

    四 init初始化系统服务

    1. 初始化log系统
    2. 解析/init.rc和/init.%hardware%.rc文件,运行early-init,并运行解析出的init动作、early-boot动作、boot动作和execute property动作。
    3. 进行设备初始化,属性server初始化并开启属性服务。

    4. 进入无线循环以等待属性设置或子进程退出事件。
  • 相关阅读:
    0528习题 11-15
    通过文档算学生的平均分
    给定两个列表,转换为 DataFrame 类型
    一千美元的故事(钱放入信封中)
    pandas 几个重要知识点
    python文件操作
    是否感染病毒
    安装 kreas 2.2.4 版本问题
    小技巧_01
    【Liunx】Linux 系统启动过程
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/6803998.html
Copyright © 2011-2022 走看看