STM32
登录
直播中
陈静
7年用户
1266经验值
私信
关注
[问答]
BootLoader启动过程分为哪几个阶段呢
开启该帖子的消息推送
bootloader
操作系统
程序
BootLoarder是什么?
BootLoader的操作模式有哪几种呢?
BootLoader启动过程分为哪几个阶段呢?
回帖
(1)
陈勇
2021-11-30 16:15:56
BootLoarder是什么
Linux操作系统分层
一个嵌入式Linux系统从软件的角度看通常可以分为四个层次:
引导加载程序。包括固化在固件(firmware)中的boot代码(可选),和BootLoader两大部分。
Linux内核。特定于嵌入式板子的定制内核以及内核的启动参数。
文件系统。包括根文件系统和建立于Flash内存设备之上文件系统。通常用ramdisk来作为rootfs。
用户应用程序。特定于用户的应用程序。有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。常用的嵌入式GUI有:MicroWindows和MiniGUI等。
BootLoarder
BootLoader是嵌入式Linux操作系统的第一个层次,即引导加载程序,是硬件加电之后要运行的第一段程序,也是内核运行的引导程序。
bootloader是指操作系统的启动加载程序。
它是在操作系统内核运行之前运行的一段小程序,主要负责初始化硬件空间,初始化内存空间,调整系统的软硬件环境,以便操作系统内核启动。
Bootloader是嵌入式系统在加电后执行的第一段代码,在它完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式应用程序装在到内存中然后跳转到操作系统所在的空间,启动操作系统运行 。
不同的硬件以及不同的配置bootloader是不一样的。
不同的CPU也有不同的bootloader,有些也支持多种CPU。
嵌入式系统通常把固态存储设备地址映射好,bootloader就放在这个地址,这样系统复位之后,就可以首先执行这段程序。
采用汇编和c语言的结合方式来写程序,完成了它的使命之后,它就不再运行了。
BootLoader操作模式
大多数Bootloader都包含两种不同的操作模式:
启动加载模式
在这种模式下,Bootloader从目标机的某个固态存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。这种模式是Bootloader的正常工作模式,因此在嵌入式产品发布时,Bootloader必须工作在这种模式下。
下载模式
在这种模式下,目标机上的Bootloader将通过串口或网络等通信手段从开发主机(Host)上下载内核映像和根文件系统映像等到RAM中,然后可再被Bootloader写到目标机上的固态存储媒质中,或者直接进行系统的引导。
启动加载模式通常用于第一次烧写内核与根文件系统到固态存储媒质时或者以后的系统更新时使用;
下载模式多用于开发人员在前期开发的过程中,工作于这种模式下的Bootloader通常都会向它的终端用户提供一个简单的命令行接口。
BootLoader启动过程
Bootloader启动大多数都分为两个阶段。
第一阶段主要包含依赖于CPU的体系结构硬件初始化的代码,通常都用汇编语言来实现。
这个阶段的任务有:
基本的
硬件设备初始化
(屏蔽所有的中断、关闭处理器内部指令/数据Cache等)。
为第二阶段准备
RAM空间
。
如果是从某个固态存储媒质中,则复制Bootloader的第二阶段代码到RAM。
设置
堆栈
。
跳转到
第二阶段的C程序入口点
。
在第一阶段中为什么要关闭Cache?通常使用Cache以及写缓冲是为了提高系统性能,但由于Cache的使用可能改变访问主存的数量、类型和时间,因此Bootloader通常是不需要的。
第二阶段通常用C语言完成,以便实现更复杂的功能,也使程序有更好的可读性和可移植性。这个阶段的任务有:
初始化本阶段要使用到的
硬件设备
。
检测
系统内存映射
。
将
内核映像和根文件系统映像从Flash读到RAM
。
为
内核设置启动参数
。
调用内核
。
可以看出,BootLoader的主要工作有两个:
硬件初始化;
将内核加载到RAM中,为内核启动做准备.
BootLoarder是什么
Linux操作系统分层
一个嵌入式Linux系统从软件的角度看通常可以分为四个层次:
引导加载程序。包括固化在固件(firmware)中的boot代码(可选),和BootLoader两大部分。
Linux内核。特定于嵌入式板子的定制内核以及内核的启动参数。
文件系统。包括根文件系统和建立于Flash内存设备之上文件系统。通常用ramdisk来作为rootfs。
用户应用程序。特定于用户的应用程序。有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。常用的嵌入式GUI有:MicroWindows和MiniGUI等。
BootLoarder
BootLoader是嵌入式Linux操作系统的第一个层次,即引导加载程序,是硬件加电之后要运行的第一段程序,也是内核运行的引导程序。
bootloader是指操作系统的启动加载程序。
它是在操作系统内核运行之前运行的一段小程序,主要负责初始化硬件空间,初始化内存空间,调整系统的软硬件环境,以便操作系统内核启动。
Bootloader是嵌入式系统在加电后执行的第一段代码,在它完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式应用程序装在到内存中然后跳转到操作系统所在的空间,启动操作系统运行 。
不同的硬件以及不同的配置bootloader是不一样的。
不同的CPU也有不同的bootloader,有些也支持多种CPU。
嵌入式系统通常把固态存储设备地址映射好,bootloader就放在这个地址,这样系统复位之后,就可以首先执行这段程序。
采用汇编和c语言的结合方式来写程序,完成了它的使命之后,它就不再运行了。
BootLoader操作模式
大多数Bootloader都包含两种不同的操作模式:
启动加载模式
在这种模式下,Bootloader从目标机的某个固态存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。这种模式是Bootloader的正常工作模式,因此在嵌入式产品发布时,Bootloader必须工作在这种模式下。
下载模式
在这种模式下,目标机上的Bootloader将通过串口或网络等通信手段从开发主机(Host)上下载内核映像和根文件系统映像等到RAM中,然后可再被Bootloader写到目标机上的固态存储媒质中,或者直接进行系统的引导。
启动加载模式通常用于第一次烧写内核与根文件系统到固态存储媒质时或者以后的系统更新时使用;
下载模式多用于开发人员在前期开发的过程中,工作于这种模式下的Bootloader通常都会向它的终端用户提供一个简单的命令行接口。
BootLoader启动过程
Bootloader启动大多数都分为两个阶段。
第一阶段主要包含依赖于CPU的体系结构硬件初始化的代码,通常都用汇编语言来实现。
这个阶段的任务有:
基本的
硬件设备初始化
(屏蔽所有的中断、关闭处理器内部指令/数据Cache等)。
为第二阶段准备
RAM空间
。
如果是从某个固态存储媒质中,则复制Bootloader的第二阶段代码到RAM。
设置
堆栈
。
跳转到
第二阶段的C程序入口点
。
在第一阶段中为什么要关闭Cache?通常使用Cache以及写缓冲是为了提高系统性能,但由于Cache的使用可能改变访问主存的数量、类型和时间,因此Bootloader通常是不需要的。
第二阶段通常用C语言完成,以便实现更复杂的功能,也使程序有更好的可读性和可移植性。这个阶段的任务有:
初始化本阶段要使用到的
硬件设备
。
检测
系统内存映射
。
将
内核映像和根文件系统映像从Flash读到RAM
。
为
内核设置启动参数
。
调用内核
。
可以看出,BootLoader的主要工作有两个:
硬件初始化;
将内核加载到RAM中,为内核启动做准备.
举报
更多回帖
rotate(-90deg);
回复
相关问答
bootloader
操作系统
程序
rk3288的uboot
启动
分为
哪几个
过程
呢
2022-03-04
1586
Centos6的引导
过程
分为
哪几个
阶段
呢
2021-10-19
1131
串口通信的硬件设计可以
分为
哪几个
部分
呢
2021-12-14
1656
C语言的开发
过程
可
分为
哪几个
步骤
呢
2021-11-02
2118
如何去实现单片机
BootLoader
的程序操作
呢
2021-11-09
1019
可编程逻辑控制器工作时主要
分为
哪几个
阶段
?
2021-07-05
2121
IC的设计
过程
可
分为
哪几个
部分
2021-10-20
1827
学习模拟集成威廉希尔官方网站 主要有
哪几个
阶段
?
2021-06-22
991
航模无刷电机大概
分为
哪几个
系列?
2021-07-21
2396
嵌入式总共
分为
哪几个
主流方向?
2021-09-24
2307
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分