码迷,mamicode.com
首页 > 其他好文 > 详细

新版本uboot启动流程分析

时间:2019-07-10 01:26:13      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:ble   时钟   ini   代码   ott   src   介绍   步骤   range   

参考页面

友善之臂文章
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启动流程分析

标签:ble   时钟   ini   代码   ott   src   介绍   步骤   range   

原文地址:https://www.cnblogs.com/lizhensheng/p/11161415.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!