【毫米波雷达(三)】汽车控制器启动流程——BootLoader

汽车控制器启动流程——BootLoader

    • 一、什么是Bootloader(BT)?
    • 二、FBL、PBL、SBL、ESS的区别
    • 三、MCU的 A/B分区的实现

一、什么是Bootloader(BT)?

BT就是一段程序,一段引导程序。它包含了启动代码、中断、主程序等。
雷达启动需要由BT跳转到APP
在这里插入图片描述
它存在的意义是什么呢?
更新APP程序,因为BT和APP都是存储在flash中,BT有擦写flash的功能,将旧APP擦掉,写入新APP

二、FBL、PBL、SBL、ESS的区别

PBL(Primary BootLoader):一级boot,第一引导加载程序(FBL与PBL实际是一个)。
SBL(Second BootLoader):二级boot,第二引导加载程序。目的是更新APP
ESS(Ecu Software Structure ,ECU软件架构)是ECU软件分布结构文件,比如一个ECU有APP、HEX、配置文件config等整合成一个vbf文件,并再ESS中体现起始地址,大小,校验地址信息等。boot通过识别ESS文件,刷写APP和config等,这样可以后续动态调整ESS来实现APP和config调整分区,避免boot也需要跟着更新。
在这里插入图片描述
上图是PBL、SBL、MCU存储器的关系示意图
PBL的作用是在应用软件有效时引导它。PBL是存储在MCU的Flash中,它一般是产品出厂时一次性刷好的,上电或重启后,第一批执行的代码就是PBL。需要刷写软件时,PBL可以通过统一诊断服务(UDS),基于CAN或以太网等底层总线协议与外界诊断仪通信。在校验完诊断仪的权限后,PBL会将诊断仪上的SBL下载到MCU的内存RAM上,然后由SBL进行刷写。SBL包含PBL提供的所有服务以及闪存驱动器(Flash Driver)和一些额外的UDS服务。通过UDS触发,SBL会利用Flash Driver擦除就软件,并把新软件写到对应的存储区。具体流程如下图:
在这里插入图片描述
为了避免应用软件被意外误刷写或删除,PBL中一版不包含Flash Driver,不能直接操作闪存。每次刷写时,包含Flash Driver的SBL都会从诊断仪中重新加载到内存。这种PBL和SBL的分工方案,有如下这些好处:

  • 平时防止应用软件被误刷写
  • 提高网络安全性。每次从诊断仪下载SBL时,都可以通过安全鉴权机制,确保合法的诊断仪才能触发刷写。
  • 通过SBL还能反向刷写更新PBL,提高BootLoader的整体灵活性。

三、MCU的 A/B分区的实现

如下图所示,在A系统运行时,悄悄升级冗余的B系统,完成安装升级后再重启MCU,然后再切换到B系统
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/910008.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

原生鸿蒙的竞争力到底如何?

目录 1. 崛起与挑战2. 安全机制3. 自动化检测前移4. 深入探讨开发者服务优势 1. 崛起与挑战 长期以来,移动操作系统市场被IOS和安卓所垄断,一直都难以推出完整的自主系统,面临诸多挑战,如推广困难、应用适配难度大,以及…

Unity SRP学习笔记(二)

Unity SRP学习笔记(二) 主要参考: https://catlikecoding.com/unity/tutorials/custom-srp/ https://docs.unity.cn/cn/2022.3/ScriptReference/index.html 中文教程部分参考(可选): https://tuncle.blog/c…

欧冠:拜仁进攻线持续飘红?

里斯本竞技最终4-1击败曼城,瓜迪奥拉的球队惨遭3连败。目前曼城的防线球员身体状态的确一般,一对一总是跟不上节奏,这也是曼城两次遭遇点球判罚的原因。当一个人失去希望时,眼神是空洞的,哈兰德下半场罚丢点球的时刻&a…

从0开始的STM32之旅8 串口通信(II)

目录 在开始理解底层原理之前,我们先尝试一下 怎么做 进一步理解 HAL_UART_Transmit HAL_UART_Receive 在开始理解底层原理之前,我们先尝试一下 现在我们综合一下,要求完成如下的事情: 在主程序中存在一个flag变量描述当前有…

HarmonyOS使用arkTS拉起指定第三方应用程序

HarmonyOS使用arkTS拉起指定第三方应用程序 前言代码及说明bundleName获取abilityName获取 前言 本篇只说采用startAbility方式拉起第三方应用,需要用到两个必备的参数bundleName,abilityName,本篇就介绍如何获取参数… 代码及说明 bundle…

WPF之iconfont(字体图标)使用

1,前文: WPF的Xaml是与前端的Html有着高度相似性的标记语言,所以Xaml也可同Html一般轻松使用阿里提供的海量字体图标,从而有效的减少开发工作度。 2,下载字体图标: 登录阿里图标库网iconfont-阿里巴巴矢量…

猎板PCB2到10层数的科技进阶与应用解析

1. 单层板(Single-sided PCB) 定义:单层板是最基本的PCB类型,导线只出现在其中一面,因此被称为单面板。限制:由于只有一面可以布线,设计线路上有许多限制,不适合复杂电路。应用&…

HTML 标签属性——<a>、<img>、<form>、<input>、<table> 标签属性详解

文章目录 1. `<a>`元素属性hreftargetname2. `<img>`元素属性srcaltwidth 和 height3. `<form>`元素属性actionmethodenctype4. `<input>`元素属性typevaluenamereadonly5. `<table>`元素属性cellpaddingcellspacing小结HTML元素除了可以使用全局…

腾讯轻量云服务器docker拉取不到镜像的问题:拉取超时

前言 也是尝试了各种解决方案之后&#xff0c;无果&#xff0c; 后来发现每个服务器提供商都有自己的镜像加速&#xff0c;且只给自家服务器使用&#xff0c;我用的腾讯云 教程 安装docker 直接上链接&#xff1a;云服务器 搭建 Docker-实践教程-文档中心-腾讯云 配置加速镜…

使用LNMP搭建私有云存储+内网穿透

目录 LNMP搭建私有云存储准备工作安装 内网穿透&#xff08;cpolar&#xff09; LNMP搭建私有云存储 准备工作 恢复快照&#xff0c;关闭安全软件 [rootserver ~]# setenforce 0 setenforce: SELinux is disabled [rootserver ~]# systemctl stop firewalld搭建LNMP环境 [r…

虚幻引擎5(UE5)学习教程

虚幻引擎5&#xff08;UE5&#xff09;学习教程 引言 虚幻引擎5&#xff08;Unreal Engine 5&#xff0c;简称UE5&#xff09;是Epic Games开发的一款强大的游戏引擎&#xff0c;广泛应用于游戏开发、影视制作、建筑可视化等多个领域。UE5引入了许多先进的技术&#xff0c;如…

VBA02-初识宏——EXCEL录像机

一、录制宏 录制宏其实就是将一系列操作结果录制下来&#xff0c;并命名存储。这些操作可以是关于数据的处理、格式的设置、函数的运用等&#xff0c;相当于在编程语言&#xff08;如VB&#xff09;中定义的一个子程序。 在录制宏时&#xff0c;软件会记录用户执行的一系列操…

如何找到奥德彪视频素材?推荐视频素材网站

今天&#xff0c;我们来聊一个充满趣味的话题——奥德彪视频素材。即使你还不太了解这个名词&#xff0c;跟着我一起探索&#xff0c;你会发现这其实是一个非常有趣的旅程。接下来&#xff0c;我将推荐几个优秀的视频素材网站&#xff0c;帮助你找到想要的奥德彪视频素材。 蛙学…

vue3如何使用pinia设置全局状态,附常见面试题

1. stores/index.ts 文件 在 index.ts 中创建 store 实例并封装了注册逻辑&#xff0c;这样可以方便地将整个 Pinia 实例注册到 Vue 应用中。代码如下&#xff1a; import type { App } from vue import { createPinia } from piniaconst store createPinia()// 全局注册 st…

【字符串匹配算法】BF与KMP算法

一、BF算法 1.1 概念 BF算法&#xff0c;即暴力&#xff08;Brute Force&#xff09;算法&#xff0c;是普通的模式匹配算法&#xff0c;BF算法的思想就是将目标串S与字串T的第一个字符进行匹配&#xff0c;若相等&#xff0c;则继续比较S的第二个字串和T的第二个字符&#x…

【Allure】allure装饰器函数

**allure装饰器**​作用&#xff1a;用于将测试用例的数据展示到测试报告中 1.需要将这些装饰器函数添加**测试方法或测试类的开头**。2.同一个类或者一个方法可以添加多个装饰器函数 &#xff0c;这样此用例就具有了个作用属性 。 allure.epic() 敏捷中的概念 项目名称 allu…

1.3 自然语言处理的应用

自然语言处理&#xff08;NLP&#xff09;在多个领域有广泛应用&#xff0c;如自动文摘、机器翻译、情感分析等。本实战将通过NLTK库&#xff0c;演示文本预处理的关键技术&#xff0c;包括小写转换、去噪、文本规范化、词干提取、词形还原、标记化以及删除停止词。这些技术为构…

数学建模启发式算法篇(一)---遗传算法

文章目录 1.引言2.生物学基础2.1适应度2.2染色体&#xff0c;基因 3.算法介绍3.1算法流程3.2编码和解码3.3轮盘赌选择3.4交叉和变异3.5初始参数的设置 4.实际应用-matlab4.1观察图像4.2初始参数说明4.3init初始化4.4二进制转换为十进制4.5选择,交叉过程4.6情况说明4.7代码 1.引…

Matplotlib | 条形图中的每个条形(patch)设置标签数据的方法

方法一 不使用子图对象如何给形图中的每个条形设置数据 plt.figure(figsize(8, 4)) sns.countplot(xWorkout_Frequency (days/week), datadf)plt.title(会员每周锻炼频率分布) plt.xlabel(锻炼频率 (每周次数)) plt.ylabel(人数)# 获取当前活动的轴对象 ax plt.gca()# 循环遍…

【JavaSE】(2) 方法

一、认识方法 1. 方法的定义 修饰符 返回类型 方法名(形参类型 形参名, ......){......return 返回值; } 示例代码&#xff1a; 2. 方法的作用 增强代码的可复用性。&#xff08;避免重复造轮子&#xff09;增强代码的易管理性。&#xff08;改方法就行&#xff0c;不用到处…