zoukankan      html  css  js  c++  java
  • 新版本uboot启动流程分析

    参考页面

    友善之臂文章
    UBOOT启动过程介绍,非常有用!

    启动过程分析

    第一阶段

    初始化RAM,CPU阶段,准备初始化板
    操作时钟,设置CPU模式,设置中断,关看门狗,
    底层初始化CPU,初始化RAM,初始化C环境,设置GD全局数据结构
    执行board_init_f

    第二阶段

    前期初始化板阶段,此时已经可以使用串口,显示板子信息,然后重定位代码
    board_init_f,其实就是在RAM中设置各种内存,然后重定位跳转过去,好进行下一步继续初始化
    执行init_sequence_f 函数数组里面的函数
    设置堆栈,BSS等C环境

    最后一个步骤是---重定位代码jump_to_copy
    在调用board_init_f()完成板卡与全局结构体变量 gd 的初始化后将其拷贝到在代码段下重新分配的全局结构体中。接下来进行sp的重新设置,将r9指向重新分配的全局变量gd,然后进行代码的重定位。

    第三阶段

    板子第二初始化阶段,此时C的环境已经建立,已经重定位后在RAM中运行
    board_init_r
    开始初始化各种外设
    init_sequence_r

    最后一个步骤是main_loop()
    主循环

    第四阶段

    主循环
    开始进行CLI等待和命令处理了。

  • 相关阅读:
    JAVA Hibernate工作原理及为什么要用
    Struts2应用流程注解
    查看cpu几核方法
    loadrunner录制获取不到token
    cpu监控
    接口测试
    LoadRunner性能测试结果计数器指标说明
    windows资源监控
    loadrunner检查点
    loadrunner 关联
  • 原文地址:https://www.cnblogs.com/lizhensheng/p/11161415.html
Copyright © 2011-2022 走看看