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

uboot启动流程

时间:2016-03-08 23:25:41      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

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

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

 

  一般来说第一阶段工作:

1. 硬件设备初始化。

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

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

4. 设置好栈。

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

 

第二阶段:

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

2. 检测系统内存映射。

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

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

5. 调用内核。

 

Bootloader与内核的交互:

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

 

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

 

技术分享





uboot启动流程

标签:

原文地址:http://www.cnblogs.com/dchipnau/p/5256052.html

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