cwyw不是有效的加载项_ADAS/AD开发09 - UDS与引导加载程序
本文属于ADAS控制器开发系列。以智能前视摄像头模块为基础。
前言
引导加载程序,即Bootloader(简称BL),是ECU的基本模块,实现方式也很多。
本文介绍的Bootloader刷写功能的下载协议是通过UDS诊断服务实现的。
一、Bootloader简介:
Boot Loader在嵌入式系统里,一般分为两部分:PBL(Primary Bootloader,第一引导加载程序)和SBL(Second Bootloader,第二引导加载程序)。
PBL一般固化在程序Flash存储空间中,地址一般在CodeFlash(类似于PC程序或手机APP程序中的代码区)的最开始位置,例如0x0000到0x7FFF。FBL本身一般无法通过车辆CAN网络进行刷写。需要刷写FBL一般有两种方式:1.将ECU拆开,利用ECU刷写夹具进行刷写(如图1)。2. 利用CCP或XCP协议,通过SBL来刷写PBL。
PBL中一般会存储重置(reset)和中断(interrupt)的向量地址。换句话说,PBL中唯一的中断处理任务就是reset。PBL一般只用来引导SBL加载到RAM中,真正刷写任务是由SBL完成的,在内存中keep alive的SBL,还可以反过来刷写PBL。
SBL一般存在于RAM(内存)中,一般是由PBL将SBL代码加载到RAM中,每次使用过后会从RAM中删除。SBL可以认为是PBL的超集。大部分Bootloader既有PBL,也有SBL。SBL可以刷写CodeFlash和外挂Flash等等。但是有些要求较低的OEM,也会允许只有PBL的情况。下文以只有PBL为例,进行简单说明:
2. FBL的入口:
产品正常情况下,是运行在APP模式中的;想要进入Bootloader模式中,必须要Reset后才能进入。在Bootloader刷写完程序后,需要自行退出Bootloader模式,并触发Reset后,再次进入APP模式中。
Reset有Hard Reset(硬重启)和Soft Reset(软重启)之分,一般情况下,我们要求进入Bootloader模式中的重启必须是硬重启。除非OEM主机厂要求支持软重启。
PBL使用UDS服务实现的,因此在BL模式中需要支持的UDS服务展示如下:
3. BL模式需要支持的一些DID汇总
a. 判断目前ECU在哪个模式下运行的DID,例如是在APP模式,还是BL模式;
b. 计数刷写成功次数的DID,且在APP模式下,只能读;在BL模式下,能读能写;
c. 计数尝试刷写次数的DID,且在APP模式下只能读;在BL模式下,能读能写;
d. CRC计算的起始地址的DID,可读可写;
e. CRC计算大小的DID,可读可写;
f. 最大允许刷写时间的DID,可以通过配置模块来更改数值,如果超过时间还没刷写完成,就强制退出,刷写失败;如果设置为0,相当于不限制刷写时间。
4. BL模式需要支持的一些RID汇总
在BL进行刷写过程中,需要调用几种Routine Control UDS服务,
a. 擦除Flash存储空间的RID;该RID只能用于BL模式;
b. 检查刷写相关项,若只有单一应用软件镜像在使用,则总是返回ture;只允许在BL模式中运行;
c. 检查刷写前置条件的RID,用于实施刷写前,检查外部环境条件是否满足要求;只允许在APP模式下运行,检查通过,就会Reset ECU,进入BL模式;
d. 检查Flash驱动内部锁完整性的RID,用于检查Flash驱动加载到RAM后,是否无效;只允许在BL模式中运行;
e. 检查应用软件数据有效性的RID,用于检查应用程序在加载到ECU的flash后,程序和数据影像是否有效;只能在BL模式中运行;
f. 保持Bootloader始终在BL模式,尽管有效的应用程序已经找到;只能在BL模式运行。
二、Bootloader程序一般刷写流程(基于PBL):
cwyw不是有效的加载项_ADAS/AD开发09 - UDS与引导加载程序相关推荐
- 为此计算机所有用户安装加载项,此网站需要运行以下加载项……如果您信任该网站和该加载项并允许运行该加载项...
什么是浏览器加载项 加载项是指为浏览器添加扩展功能的特殊软件.提到加载项一般涉及插件.扩展组件.工具栏等,通常是由非微软的第三方厂商编写.有些加载项可以在浏览器中直观地看见.有些则以静默的方式运行于后 ...
- Excel催化剂开源第3波-修复ExcelCom加载项失效问题及WPS可调用Com加载项的方法
为了还原一个干净无侵扰的网络世界,本文将不进行大规模地分发,若您觉得此文有用,不妨小范围地分享到真正有需要的人手中 功能概述 修复ExcelCom加载项常见问题,如每次需重新勾选COM加载项或COM加 ...
- unity 通过resouce加载图片_Unity游戏开发笔记-资源管理之资源加载
资源加载是游戏中非常重要也非常繁琐的的一部分,不合理的资源管理,必定回给游戏的内存带来非常大的压力,尤其是一些重度游戏,不但资源特别多,引用关系特别复杂.维护一个不会内存泄漏而且加载效率高的资源加载框 ...
- 关闭打开Excel弹出要安装“Microsoft.VisualStudio.QualityTools.LoadTestExcelAddIn.vsto”加载项
每次打开时都弹出如下提示加载项,关闭方法如下: 文件>>选项>>加载项>>COM加载项>>转到,找到对应的加载项(位置处显示的路径和提示的 ...
- python加载项向导_什么是 Python 加载项?
加载项是一种自定义项,它可以插入到 ArcGIS for Desktop 应用程序(即 ArcMap.ArcCatalog.ArcGlobe 和 ArcScene)中以便提供补充功能以完成自定义任务, ...
- 利用Office加载项进行持久化控制的6种姿势
本文讲的是利用Office加载项进行持久化控制的6种姿势,现在,几乎所有用户都会使用Microsoft Office,它的普及率这么高,以至于攻击者经常会用它来实施大规模攻击. 本文就将为大家介绍通过 ...
- WPS加载项系列(3)WPS项目部署
一.部署方式 wps加载项目有两种部署模式,publish模式和jsplugins.xml模式,可以参考实际情况自己选择部署模式. 二.publish模式 1. 原理 通过访问 publish自动安装 ...
- vb wps 链接单元格_使用VB快速制作WPS的COM加载项
使用VB快速制作WPS的COM加载项 2018-09-14 1.新建工程,选择ActiveX Dll. 2.工程.引用.选择Kingsoft Add-In Designer.Kingsoft Offi ...
- 管理 Office com 加载项
1. 启动 Office 产品 (Word, Excel, Outlook ...). 2. 在"工具"菜单上,单击"选项". 3. 在"其他&quo ...
最新文章
- java两个线程同时运行_java如何几乎同时结束两个线程
- k8s master节点参与调度(去除NoSchedule污点)
- Git 下载很慢问题解决方案
- Python 线程队列 LifoQueue – LIFO - Python零基础入门教程
- sql decimal 转string_音频怎么转文字?这个软件带你体验飞一般的感觉
- 大数据_Flink_流式处理_简介_Flink的特点---Flink工作笔记0006
- 数据库不可重复读和幻读的区别
- 推荐一款ORM工具 FOR ADOBE AIR
- 使用Photoshop+960 Grid System模板进行网页设计
- 关于Chrome浏览器(Chrome Stable、 Chrome Canary 、Chromium)
- STC15F2K60S2单片机笔记
- 中国十大芯片企业排名
- POJ 1035 拼写检查
- 英文版的pdf文件怎么翻译成中文-免费的自动翻译器
- Adobe After Effect的 安装 教程
- 获取的字段值是空值或者为null,而你自己的需求就是想要获取的字段为一个 * 默认的值
- 小程序传值对象数值到另一个页面大小限制
- c语言数字转化为字母表,c语言字符串 数字转换函数大全
- Java将数字金额转为大写
- Google搜索引擎原理