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?

对于嵌入式MCU来说,当产品稳定投产,程序烧录后,MCU我们一般是看不到的,因为外面被外壳等材料覆盖,那后期产品需要升级,无法使用烧录口的情况下,我们怎么解决问题了?
BootLoader就是为了解决这样的问题来设计的,它相当于一个引导程序。这段程序比较特殊,他可以通过一定方式,比如用按键触发、或者UDS协议指令(汽车行业)触发进入运行,BootLoader运行后,他可以通过串口接收新的代码并写入Flash,从而在不能使用烧录器的情况下,升级程序,如下流程图所示:
在这里插入图片描述

二、BootLoader是上电就运行的吗?

之前一直以为BootLoader是MCU里面上电就运行的程序,后面才发现其实并不是。
其实MCU里面有一段代码叫“Starup Code”即启动代码。它在MCU上电或复位后最先执行。主要完成堆栈指针的设置,复位向量的获取和加载,然后初始化变量,最后跳转到用户代码。

当芯片复位,或从Standby低功耗模式唤醒时:

  • 如果引脚BOOT0是被拉低的,将映射到Flash memory。这里是常用的代码运行模式;
  • 如果引脚BOOT0是拉高的,且nBOOT为1,将映射到System memory,进入BootLoader模式
  • 如果引脚BOOT0是被拉高的,且nBOOT1为0,将映射到SRAM。
    注:nBOOT1为Flash寄存器中的一位。
    以上可以直接阅读参考1,博主写的很好很全面。

三、BootLoader的种类

BootLoader严重依赖硬件实现,而嵌入式环境硬件环境变化太多了,不可能存在一个统一的BootLoader,所以市场上有很多不同类型的BootLoader存在

  • Redboot
    Redboot是Redhat公司随eCos发布的一个BOOT方案,是一个开源项目。
  • ARMboot
    ARMboot是一个ARM平台的开源 固件项目,它特别基于PPCBoot,一个为PowerPC平台上的系统提供类似功能的姊妹项目。鉴于对PPCBoot的严重依赖性,已经与PPCBoot项目合并,新的项目为 U-Boot。
  • U-Boot
    U-Boot是由开源项目PPCBoot发展起来的,ARMboot并入了PPCBoot,和其他一些arch的Loader合称U-Boot。2002年12月17日第一个版本U-Boot-0.2.0发布,同时PPCBoot和ARMboot停止维护。
  • Blob
    Blob(Boot Loader Object)是由Jan-Derk Bakker and Erik Mouw发布的,是专门为StrongARM 构架下的LART设计的Boot Loader。
    详细内容可以查看参考3
    参考:
  1. STM32F0单片机快速入门三 MCU启动过程
  2. 汽车ECU的Bootloader升级过程分析
  3. 什么是Bootloader?
  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:35:52  更:2022-05-05 11:37:12 
 
开发: 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/30 0:58:32-

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