zoukankan      html  css  js  c++  java
  • uboot启动流程

    分两阶段,第一阶段主要用汇编完成,第二阶段主要用c完成。

    个人觉得两个阶段的分工并没有什么明显的要求,很多硬件的初始化可以放到第一阶段也可以放到第二阶段。只不过有一些复杂工作用汇编比较麻烦。

     

      一般来说第一阶段工作:

    1. 硬件设备初始化。

    2. 为加载bootloader的第二阶段代码准备RAM空间。

    3. 复制bootloader的第二阶段代码到RAM空间中。

    4. 设置好栈。

    5. 跳转到第二阶段代码的c入口点。

     

    第二阶段:

    1. 初始化本阶段要用到的硬件设备。

    2. 检测系统内存映射。

    3. 将内核映像和根文件系统映像从flash督导RAM空间。

    4. 为内核设置启动参数。

    5. 调用内核。

     

    Bootloader与内核的交互:

    Bootloader与内核的交互是单向的,他们不能同时运行,bootloader将各类参数放在某一个约定好的位置,再启动内核,内核启动后从这个位置获得参数(比如内存的起始和结束地址)。

     

    下面这个文件就是某个bootloader设计的详细架构。

     





  • 相关阅读:
    继承
    rpm使用
    weblogic报outOfMemory
    linux能访问外网但ping不通百度
    zookeeper启动异常问题
    Oracle查看表的变动信息
    Linux创建、删除软链接
    zookeeper开机自启
    linux中oracle自启动
    Weblogic命令模式安装
  • 原文地址:https://www.cnblogs.com/dchipnau/p/5256052.html
Copyright © 2011-2022 走看看