打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Bootloader介绍

日志档案

发表于 2011/10/10 0:00:49

标签: bootloader  内存  Flash  启动流程  

Bootloader介绍

Bootloader介绍

1.       什么是Bootloader

软件层次。一个嵌入式系统从软件角度来看分为三个层次:

1.       引导加载程序

包括固化在固件(fireware)中的boot程序(可选),和Bootloader两大部分。

                            BIOS              GRUB

2.       Linux内核

3.       文件系统

Flash中的空间分配如下:

Boot parameters(内核的启动参数)中有Bootloader所需的参数。

Kernel为内核映像

Root filesystem根文件系统

系统启动流程:

系统加电或复位后,所有的CPU通常都从CPU制造商预先安排的地址开始执行。比如上S3C2440在复位后从地址0x00000000起开始执行。而嵌入式系统则将固态存储设备(比如:Flash)安排在这个地址上,而bootloader程序又安排在固体存储器的最前端,这样就能保证在系统上电后CPU首先执行Bootloader程序。【Bootloader运行完后,该块内存会被当做普通的内存空间使用,我不明白这是为什么,会不会再次引导。

对内存的理解:

CPU的最终表现形式是IO口,CPU必须通过地址总线和数据总线和外界进行数据交换。一直以来,我搞不清楚内存和flash的关系,认为二者是同级关系。CPU向外延伸的地址总线会连接到一定的器件上(这里只分析存储类的器件),这样CPU就可以任意的读取存储类器件上的数据。当然既然是总线那就有地址(其实,这就是所谓的内存空间),我们将不同的器件分别放到不同的总线地址上(这样就分配了内存空间)。这里我们也就知道了所谓的内存空间只是我们对地址总线的另一个称呼,而内存空间实际对应的是各个存储器件的存储单元。

内存可以是flash,可以是ram

2.       为什么移植Bootloader

l         不同的CPU体系结构

l         板级配置(外设芯片、硬件地址分配)

3.       Bootloader启动流程(两阶段)

a)        Stage1

l         硬件设备初始化(内部寄存器)【有待实际完善】

l         为加载Bootloaderstage2准备RAM空间

l         拷贝Bootloaderstage2RAM空间

l         设置好堆栈(C中使用)

l         跳转到stage2C入口点

b)        Stage2

l         初始化本阶段要使用的硬件设备(比如串口、网卡)(外部寄存器)。

l         将内核映像和根文件系统映像从flash上读到RAM中。

l         调用内核(启动操作系统)

内存分布图

当完成步骤2后,所有的bootloader操作完成,开始在内核下工作。

系统分类: 嵌入式   |   用户分类: Uboot   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

0

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Linux启动过程详解
嵌入式系统 Boot Loader
【整理】BIOS、BootLoader、uboot对比
国嵌视频学习第九天——UBOOT基础
U-boot在开发板上移植过程详解
浅析嵌入式Linux系统的构成和启动过程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服