ECU Bootloader程序设计
简介:
Bootloader是独立于应用程序的一个项目工程,其提供应用程序离线升级的功能,如果没有Bootloader就不能进行程序升级,如果应用软件有缺陷只能拆盖通过仿真器进行烧写(更有严重者甚至需要把硬件看门狗电阻去掉),所以Bootloader使软件更加易于维护。
设计Bootloader程序时,一般需要考虑如下3个要点:
- 设计Bootloader与升级上位机间的数据交互协议
- 提供内部Flash的相关操作(擦除、写入、读取)
- 提供程序跳转功能
其中第1点是需要我们发大力气去设计的,第2、3点只要查询相关手册就能实现。
在本次的Bootloader程序设计中,数据交互协议将采用广泛用于汽车电子领域的ISO 15765-2和ISO 14229-1协议,底层将采用CAN和串口。
Bootloader程序升级流程:
本Bootloader升级流程分为3个阶段,分别为:1、前处理阶段;2、主处理阶段;3、后处理阶段。下面将分别介绍这3个升级流程模块。
1、前处理阶段:
编程前处理的对象是应用程序,而不是Bootloader程序,其主要是告诉应用程序我要进行程序升级,你看当前状态是否满足升级的条件,如果满足则关闭所有ECU的DTC诊断并静默所有ECU应用报文的收发,否则退出升级流程,其升级流程如下所示:
2、主处理阶段
主处理阶段是程序升级的最重要阶段,其主要进行程序升级数据传输和Flash擦写等操作。其中有一个比较难处理的点是,应用程序跳转到Bootloader程序并停留在Bootloader程序中进行程序升级。一般我们的操作是在RAM具体空间中分配一个4字节的整形数据ProgramFlag,在收到进入编程会话的指令后,设置ProgramFlag的值为0xaa55aa55,然后复位ECU,Bootloader程序启动读取ProgramFlag的值,如果为0xaa55aa55则等待进一步的程序升级流程。其流程如下所示:
3、后处理阶段
后处理阶段主要用于升级成功后恢复CAN总线上的数据传输及恢复其它ECU的DTC诊断。
程序升级时会话跳转流程图如下所示:
ECU Bootloader程序设计相关推荐
- 一文看懂汽车电子ECU bootloader工作原理及开发要点
随着半导体技术的不断进步(按照摩尔定律),MCU内部集成的逻辑功能外设越来越多,存储器也越来越大.消费者对于汽车节能(经济和法规对排放的要求)型.舒适性.互联性.安全性(功能安全和信息安全)的要求越来 ...
- 【UDS统一诊断服务】(补充)五、ECU bootloader开发要点详解 (1)
文章目录 引言 1. bootloader的功能 2. 如何建立可靠的总线通信? 重要说明: 3. 解析编程文件(S19/HEX/BIN) 引言 bootloader的功能 如何建立可靠的总线通信? ...
- 汽车电子ECU bootloader开发要点详解
引言 1. bootloader的功能 2. 如何建立可靠的总线通信? 3. 解析编程文件(S19/HEX/BIN) 4. NVM驱动程序开发 5. bootloader开发的其他要点 a. boot ...
- 汽车电子 ECU bootloader 开发
内容提要 引言 1. bootloader的功能 2. 如何建立可靠的总线通信? 3. 解析编程文件(S19/HEX/BIN) 4. NVM驱动程序开发 5. bootloader开发的其他要点 a. ...
- 基于UDS的ECU bootloader
CAN总线学习-3 最近学习基于UDS的bootloader,做一些总结. 1. 基于UDS的bootloader重要性 为了在不拆卸ECU的外壳的情况下也可以更新ECU的APP,我们需要有bootl ...
- ECU BootLoader and programming implementation specification
specification(规范) 1 Scope(范围) 本标准规定了ECU UDS CAN编程的详细方法和要求. 2 Normative references(引用标准) ISO 14229-1- ...
- 博世(BOSCH) ECU BootLoader设计思路
目录 1. Memory Layout - Hardware View 2. Memory allocation in PFLASH 3. Start-up Block(SB) 4. Customer ...
- ARM的位置无关程序设计在Bootloader中的应用
http://www.mcuol.com/tech/107/26052.htm 引言 基于位置无关代码PIC(PositionIndependent Code)的程序设计在嵌入式应用系统开发中具有重 ...
- 浅谈bootloader【谈的很清晰明白】
文章目录 什么是Bootloader ECU的Bootloader Bootloader框架 ECU Bootloader原理 1.预编程阶段 2.编程阶段 3.编程结束 总体流程 Bootloade ...
- for根据ID去重_汽车ECU参数标定之配置Overlay RAM实现Qorivva MPC57xx系列MCU参数在线标定和代码重映射原理和方法详解...
内容提要 引言 1. MPC5744P的Overlay RAM工作原理介绍 2 MPC5744P的Flash Overlay配置详解 2.1 平台Flash标定区域描述字寄存器配置字0--PFLASH ...
最新文章
- java保存多张图片格式_从多个URL下载多个图像文件并保存到本地计算机(使用R)...
- OpenCV中BLOB特征提取与几何形状分类
- java实现登录注册案例_Java基于IO版实现用户登录注册的案例
- torch The “freeze_support()” line can be omitted if the programis not going to be frozen to produce
- oracle实例无法启动也无法关闭
- Git冲突:commit your changes or stash them before you can merge.
- JAVA——声明包类的编译与运行解决方案
- HTML中的Content-Type的类型
- C# winform 窗体接收命令行参数自动登录进行系统,模拟600个WCF客户端的并发压力测试...
- 云服务器cvm系统,云服务器 cvm 自带系统
- poj2387TillCowsComHome Dijlstra
- python 3.6.5安装教程_Ubuntu16.04安装python3.6.5详细步骤
- 如何使用jQuery打开Bootstrap模式窗口?
- WIN7使用各种激活软件都不管用的解决办法
- vue校验输入框不能有中文
- 友盟集成微信授权登录,切换微信账号,登录无法切换微信信息问题
- WIFI能杀死植物吗?
- 210413赛后总结
- R语言-rethinking包下载安装心得(windows)
- C# 索引器(Indexer) this关键字的作用