3_8_DOUBLEWEI Bootloader启动过程

原创 2012年03月13日 10:32:30

Bootloader启动过程:

系统加电后,先执行第一阶段汇编代码,进行相应的内部硬件初始化(寄存器、内存等),将第二阶段C代码复制到RAM地址bloc_abs_base,然后跳转到第二阶段开始执行,在第二阶段中,从汇编代码跳转到C 的main()函数,继续如下工作:

外围硬件初始化(串口、USB等);

将flash中的kernel加载到SDRAM的kernel区域;

将flash中的ramdisk加载到SDRAM的ramdisk区域;

根据用户选择,进入命令模块或启动kernel

 

还可以根据需要添加协议实现更复杂的功能如TFTP,当然要有相关硬件支持
常用的bootloader:

1:blob

是一款功能强大的bootloader,源代码开放

2:Armboot

是基于ARM的嵌入式系统设计的,它支持多种Flash

可以在:http://www.sourceforge.net/projects/armboot下载

3:Redboot

Redboot是由redhat公司开发的

下载地址:http://sources.redhat.com/redboot/

4:vivi

Vivi是开发源代码的,适用于用于ARM9,主要用于S3C2410,并且它的代码组织形式类似于linux,所以熟悉linux内核代码结构的人会很容易理解vivi的构造

5:u-boot

U-boot是遵循GPL条款的开发源代码项目,其源代码目录、编译形式与linux内核很相似

下载地址:http://sourceforge.net/projects/U-Boot

其特点:

(1)      支持多协议,SCC/FEC以太网、OOTP/TFTP引导、IP和MAC的预置功能

(2)      在线读写flash、DOC、IDE、IIC、EEROM、RTC

(3)      支持串口kermit和S-record下载代码,U-boot本身的工具可以把ELF32格式的可执行文件转换成S-record格式,直接从串口下载

(4)      识别二进制、ELF32、uImage格式的Image,对linux引导有独特的支持。U-boot对linux内核进一步封装为uImage

U-boot代码目录结构:

board:

commom:

cpu:

disk:

doc:

drivers:

fs:

include:

net:

lib_arm:

tools: 创建S-Record格式文件和U-boot的工具

examples:

lib_xxx:处理器体系相关的文件目录

post:上电自检文件目录

rtc:RTC驱动程序

bootloader 启动过程

一、    Boot Loader的概念和功能 1、嵌入式Linux软件结构与分布在一般情况下嵌入式Linux系统中的软件主要分为以下及部分: (1)引导加载程序:其中包括内部ROM中的固化启动代...
  • u014379540
  • u014379540
  • 2016年08月18日 17:37
  • 1388

(二)U-boot在开发板上移植过程详解--bootloader架构分析

http://www.cnblogs.com/hanyan225/archive/2011/05/23/2054076.html  本例中采用的同样是前边一贯的实验板,这里就不对板子资源做进一步介绍...
  • u013256622
  • u013256622
  • 2015年01月15日 16:15
  • 1337

ARM+Linux系统启动流程分析----bootloader初始化系统

开发环境如下:                                         PC操作系统:RetHat Enterprise Linux6.3版本,内核版本:linux-2....
  • u013819957
  • u013819957
  • 2015年11月05日 16:33
  • 472

Android启动流程分析之一:Bootloader(基于高通芯片) 【mtk lk阶段有类似】

http://blog.csdn.net/ly890700/article/details/54586448 注:很多内容和MTK  LK阶段相同,可以借鉴学习。aboot.c内容差异很大。 ...
  • ffmxnjm
  • ffmxnjm
  • 2017年04月24日 15:27
  • 1655

系统上电后 bootloader的执行流程及 ARM Linux的启动过程分析

声明:本文章转自:http://www.go-gddq.com/html/QianRuShiXiTong-JiShu/2012-08/1042290.htm 为学习方便起见,内容转载如下: 内容摘要...
  • blue_carrot
  • blue_carrot
  • 2016年01月14日 15:28
  • 1978

树莓派3/A20 Bootloader加载过程分析

作为一名树莓派3的玩家,可能会将会感兴趣于这个板子的启动过程,就嵌入式linux而言,整个加电——启动bootloader——启动内核——加载rootfs流程对于新手会感到非常的模糊,而不知如何下手。...
  • ok138ok
  • ok138ok
  • 2014年03月15日 10:26
  • 8202

启动内核为什么一定要先启动bootloader

 有个参考资料: 下面是我的理解,基于上面的补充,如有不对的或者需要补充的地方,欢迎指正。 1、linux一开始的设计是在inter的X86上,是有BIOS的。而bootloader是嵌入式...
  • who_you_are
  • who_you_are
  • 2016年03月19日 16:06
  • 871

Bootloader的Flash启动、sdram的内存分布

Flash启动方式通常有两种:一种是可以直接从Flash启动(针对NOR Flash而言);另一种可以将压缩的内存映像文件从Flash中读到RAM,再从RAM启动。 如果是从Flash中读到RAM,...
  • sinat_24088685
  • sinat_24088685
  • 2016年05月30日 18:17
  • 1002

BootLoader的启动过程分析

在嵌入式系统中,内核映像与根文件系统映像可以直接在ROM或Flash等固态存储设备中直接运行,但该做法是以牺牲运行速度为代价的。本系统中内核映像与根文件系统映像都被加载到RAM中运行。 大多数Boo...
  • Nickter
  • Nickter
  • 2013年09月18日 09:42
  • 405

Bootloader启动过程

1、作用 嵌入式系统的引导加载程序,系统上电后运行的第一段程序。在完成对系统的初始化任务后,它会将非易失性存储器(通常是FLASH)中的Linux内核拷贝到RAM中,然后跳转到内核的第一条指令处...
  • xusansi521
  • xusansi521
  • 2015年04月23日 20:12
  • 208
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:3_8_DOUBLEWEI Bootloader启动过程
举报原因:
原因补充:

(最多只允许输入30个字)