简介:

Bootloader是独立于应用程序的一个项目工程,其提供应用程序离线升级的功能,如果没有Bootloader就不能进行程序升级,如果应用软件有缺陷只能拆盖通过仿真器进行烧写(更有严重者甚至需要把硬件看门狗电阻去掉),所以Bootloader使软件更加易于维护。

设计Bootloader程序时,一般需要考虑如下3个要点:

  1. 设计Bootloader与升级上位机间的数据交互协议
  2. 提供内部Flash的相关操作(擦除、写入、读取)
  3. 提供程序跳转功能

其中第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程序设计相关推荐

  1. 一文看懂汽车电子ECU bootloader工作原理及开发要点

    随着半导体技术的不断进步(按照摩尔定律),MCU内部集成的逻辑功能外设越来越多,存储器也越来越大.消费者对于汽车节能(经济和法规对排放的要求)型.舒适性.互联性.安全性(功能安全和信息安全)的要求越来 ...

  2. 【UDS统一诊断服务】(补充)五、ECU bootloader开发要点详解 (1)

    文章目录 引言 1. bootloader的功能 2. 如何建立可靠的总线通信? 重要说明: 3. 解析编程文件(S19/HEX/BIN) 引言 bootloader的功能 如何建立可靠的总线通信? ...

  3. 汽车电子ECU bootloader开发要点详解

    引言 1. bootloader的功能 2. 如何建立可靠的总线通信? 3. 解析编程文件(S19/HEX/BIN) 4. NVM驱动程序开发 5. bootloader开发的其他要点 a. boot ...

  4. 汽车电子 ECU bootloader 开发

    内容提要 引言 1. bootloader的功能 2. 如何建立可靠的总线通信? 3. 解析编程文件(S19/HEX/BIN) 4. NVM驱动程序开发 5. bootloader开发的其他要点 a. ...

  5. 基于UDS的ECU bootloader

    CAN总线学习-3 最近学习基于UDS的bootloader,做一些总结. 1. 基于UDS的bootloader重要性 为了在不拆卸ECU的外壳的情况下也可以更新ECU的APP,我们需要有bootl ...

  6. ECU BootLoader and programming implementation specification

    specification(规范) 1 Scope(范围) 本标准规定了ECU UDS CAN编程的详细方法和要求. 2 Normative references(引用标准) ISO 14229-1- ...

  7. 博世(BOSCH) ECU BootLoader设计思路

    目录 1. Memory Layout - Hardware View 2. Memory allocation in PFLASH 3. Start-up Block(SB) 4. Customer ...

  8. ARM的位置无关程序设计在Bootloader中的应用

    http://www.mcuol.com/tech/107/26052.htm 引言 基于位置无关代码PIC(PositionIndependent Code)的程序设计在嵌入式应用系统开发中具有重 ...

  9. 浅谈bootloader【谈的很清晰明白】

    文章目录 什么是Bootloader ECU的Bootloader Bootloader框架 ECU Bootloader原理 1.预编程阶段 2.编程阶段 3.编程结束 总体流程 Bootloade ...

  10. for根据ID去重_汽车ECU参数标定之配置Overlay RAM实现Qorivva MPC57xx系列MCU参数在线标定和代码重映射原理和方法详解...

    内容提要 引言 1. MPC5744P的Overlay RAM工作原理介绍 2 MPC5744P的Flash Overlay配置详解 2.1 平台Flash标定区域描述字寄存器配置字0--PFLASH ...

最新文章

  1. java保存多张图片格式_从多个URL下载多个图像文件并保存到本地计算机(使用R)...
  2. OpenCV中BLOB特征提取与几何形状分类
  3. java实现登录注册案例_Java基于IO版实现用户登录注册的案例
  4. torch The “freeze_support()” line can be omitted if the programis not going to be frozen to produce
  5. oracle实例无法启动也无法关闭
  6. Git冲突:commit your changes or stash them before you can merge.
  7. JAVA——声明包类的编译与运行解决方案
  8. HTML中的Content-Type的类型
  9. C# winform 窗体接收命令行参数自动登录进行系统,模拟600个WCF客户端的并发压力测试...
  10. 云服务器cvm系统,云服务器 cvm 自带系统
  11. poj2387TillCowsComHome Dijlstra
  12. python 3.6.5安装教程_Ubuntu16.04安装python3.6.5详细步骤
  13. 如何使用jQuery打开Bootstrap模式窗口?
  14. WIN7使用各种激活软件都不管用的解决办法
  15. vue校验输入框不能有中文
  16. 友盟集成微信授权登录,切换微信账号,登录无法切换微信信息问题
  17. WIFI能杀死植物吗?
  18. 210413赛后总结
  19. R语言-rethinking包下载安装心得(windows)
  20. C# 索引器(Indexer) this关键字的作用

热门文章

  1. Xcelsius 访问webservice 需要配置
  2. 验证18位身份证真实性
  3. 数字化给财税行业带来的星星之火
  4. 《持续交付》书评与访谈
  5. 7-7 六度空间 (30分)
  6. linux中目录权限777,Linux文件和目录的777、755、644权限解释
  7. 身份证实名认证接口,实名认证API接口文档
  8. android中RecyclerView添加下划线
  9. 指尖轻舞桌面:Slide On Desk - 主题风格制作指南
  10. 计算机钢琴汇编设计报告,汇编梦幻钢琴程序设计报告.doc