IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 【MCU】BootLoader的简单介绍 -> 正文阅读

[嵌入式]【MCU】BootLoader的简单介绍

什么是BootLoader

在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行,用来初始化硬件设备,建立内存空间映射图,以便为操作系统的启动做准备。在嵌入式系统中,通常没有想BIOS那样的的固定程序,因此整个系统的加载启动任务就完全由BootLoader来完成。在嵌入式系统中,系统在上电或复位时通常从地址0x0000出开始执行,BootLoader即从该地址开始执行,即上电或复位后执行的第一段代码。

BootLoader的启动过程

BootLoader的启动分为两个阶段:
(1)第一个阶段通常用汇编语言来实现,包含依赖于CPU的体系架构的硬件的初始化代码。该阶段的任务:
1.对硬件设备进行初始化(如屏蔽所有中断,关闭处理器内部指令/数据Cache等);
2.为第二阶段准备RAM空间;
3.复制BootLoader的第二阶段代码到RAM中;
4.设置堆栈为第二阶段的C语言环境做准备。

第一阶段关闭Cache的原因:通常使用Cache是为了提高系统性能,但此时Cache的使用可能改变访问主存的数量,类型或时间,BootLoader是不需要的,即BootLoader直接访问主存即可,不需要通过缓存来访问。
(2)第一阶段执行完会跳转到第二阶段的C程序入口点,该阶段是由C语言完成,以便实现更复杂的功能,也是程序有更好的可读性和可移植性。该阶段的任务:
1.初始化本阶段要用到的硬件设备;
2.检测系统的内存映射;
3.将操作系统程序从Flash读到RAM;
4.为操作系统设置启动参数;
5.调用操作系统代码进行启动。

BootLoader的操作模式

大多数BootLoader有两种操作模式:
(1)启动加载模式:在这种模式下,BootLoader将操作系统程序代码从flash中加载到RAM中运行。
(2)下载模式:BootLoader将通过串口或网络等通信手段从外部或远程主机下载内核和程序代码到RAM中,然后将接收到的程序写到本地的flash中,或者直接进行系统的引导。
前者用在第一次烧写操作系统代码到flash中或操作系统更新时使用;后者用在前期开发的调试阶段,此时BootLoader会向其终端用户提供一个简单的命令行接口。

总结

简单的说,BootLoader就是在操作系统运行之前运行的一段小程序。BootLoader广泛用于有操作系统的嵌入式设备上,它负责完成硬件初始化,操作系统引导和系统配置等,相当于PC上的BIOS,是整个系统运行的基础。
BootLoader是严重依赖硬件平台来实现的,因此不同的处理器架构有不同的BoottLoader,没有通用的BootLoader,并且对于具有相同处理器架构但外设不同的两块PCB板,BootLoader也不一定是完全相同的。
反过来,BootLoader仍然具有许多共性,一些BootLoader也能够支持多种体系架构的嵌入式系统,例如,U-Boot可同时支持PwerPC,ARM,MIPS,X86等体系架构。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-01 14:40:08  更:2021-08-01 14:41:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 9:47:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计