uboot启动流程

Posted DChipNau

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uboot启动流程相关的知识,希望对你有一定的参考价值。

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

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

 

  一般来说第一阶段工作:

1. 硬件设备初始化。

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

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

4. 设置好栈。

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

 

第二阶段:

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

2. 检测系统内存映射。

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

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

5. 调用内核。

 

Bootloader与内核的交互:

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

 

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

 





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

uboot启动流程

Uboot启动流程分析

Uboot启动流程分析

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

[架构之路-25]:目标系统 - 系统软件 - bootloader uboot内存映射与启动流程

uboot启动流程