新版本uboot启动流程分析

Posted lizhensheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新版本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等待和命令处理了。

以上是关于新版本uboot启动流程分析的主要内容,如果未能解决你的问题,请参考以下文章

Uboot启动流程分析

Uboot启动流程分析

uboot研读笔记 | 14 - uboot启动流程分析(2016.03版本)

从0移植uboot _启动流程分析

uboot启动流程

am335x uboot启动流程分析