Bootloader概念

顾名思义,就是驻留在ECU非易失性存储器中的一段程序加载代码,每次ECU复位后,都会运行bootloader。它会检查是否有来自通信总线的远程程序加载请求,如果有,则进入bootloader模式,建立与程序下载端(通常为PC上位机)的总线通信并接收通信总线下载的应用程序、解析其地址和数据代码,运行NVM(None Valitale Momory–非易失性存储器)驱动程序,将其编程到NVM中,并校验其完整性,从而完成应用程序更新。如果没有来自通信总线的远程程序加载请求,则直接跳转到应用程序复位入口函数。

Bootloader刷新过程

预刷新步骤:刷新前的CAN网络准备

10 03 在扩展会话下通过功能寻址来发给所有ECU
31 01 xx xx ,重编程条件检查,比如车速、电压、挡位是否在p档
85 02 禁DTC
28 03 03 禁止非诊断报文的发送和接收(85和28服务顺序不能反,不然报DTC丢失了)
22读数据 ECU相关信息 软硬件版本号,bootloader版本号

主刷新步骤:下载应用软件或应用数据

10 02 外部请求刷新标志位
27 安全访问
34 36 37服务 请求下载,传输数据,请求传输退出
31 01 +FF01 检查刷新完整性 CRC32
全部通过物理寻址操作

后刷新步骤:重同步CAN网络

28 80 03 恢复ECU NM报文和APP报文收发
11 01 硬复位
10 03 扩展会话
14 FF FF FF清故障码
85 服务使能DTC

Boot相关的知识点提纲

Boot自刷新:https://blog.csdn.net/weixin_40137252/article/details/111054011
CB Customer boot
SB start boot
P-flash:
program flash 主flash 存放代码
D-flash EEPROM备份以及Dataflash
刷写时外置EEP(按字节)不会被擦除,flash需要擦除(按sector)才能写入。
Flash驱动(flash内存擦除和写入)
Flash数据下载:寻址、擦除、编程条件检查
memlay 分配flash的空间
Bootctrl
EcuSecu 安全启动
Secureboot:通过逐级验证启动镜像,实现固件可信加载的技术
https://zhuanlan.zhihu.com/p/536007837
IFX&JDP 芯片对安全启动Secureboot的支持方式
uboot:启动操作系统内核

CB 架构

ECU Bootloader自学笔记相关推荐

  1. 字节跳动大佬的Python自学笔记.pdf

    1. 字节跳动大佬的Python自学笔记 这是我的一个朋友自学资料包,通过这个资料包自学拿到了字节跳动的Offer, 下面是他之前入门学习Python时候的学习资料,非常全面,从Python基础.到w ...

  2. JAVA自学笔记07

    JAVA自学笔记07 1.构造方法 1) 例如:Student s = new Student();//构造方法 System.out.println(s);// Student@e5bbd6 2)功 ...

  3. MySQL自学笔记2--select的5个子句

    MySQL自学笔记 使用的MySQL自带命令客户端,其中具体的操作是在自建的数据库下room303表中进行的,表中的列有:id.name.age.email.tel.salary.riqi.class ...

  4. JAVA自学笔记24

    JAVA自学笔记24 1.能使用同步代码块就使用同步代码块,除非锁对象是this,就可以考虑使用同步方法.静态方法的锁是类的字节码对象. 2.JDK5新特性 1)接口Lock void Lock()/ ...

  5. 怎么用vc采集ni卡数据_SystemLink自学笔记(6):SystemLink架构和数据服务

    1. SystemLink架构和数据服务 1.1. 架构和特点 现在在对SystemLink的功能有了一个大概的了解后,可以进一步从它的整体架构学习这门新技术了.NI官网给出了白皮书,原文是英文资料, ...

  6. JAVA自学笔记22

    JAVA自学笔记22 1.操作基本数据类型的流 DataInputStream DataOutputStream 数据输出流允许应用程序以适当方式将基本的Java数据类型写入输出流中.然后,应用程序可 ...

  7. 字节、阿里等大厂的技术如何?看看这些Java程序员的自学笔记

    这份笔记涉及JVM.JAVA集合.JAVA多线程并发.JAVA基础.Spring原理.微服务.Netty与RPC.网络.日志.Kafka.RabbitMQ.Hbase.MongoDB.设计模式.负载均 ...

  8. 深入理解弹性盒布局(fiex-box)——Web前端系列自学笔记

    文章目录 弹性盒布局 弹性盒布局概述 弹性盒布局属性 display flex-flow justify-content align-items order flex align-self 总结 弹性 ...

  9. JAVA自学笔记21

    JAVA自学笔记21 1.转换流 由于字节流操作中文不是非常方便,因此java提供了转换流 字符流=字节流+编码表 1)编码表 由字符及其对应的数值组成的一张表 图解: 2)String类的编码和解码 ...

  10. PostCSS自学笔记(二)【番外篇二】

    图解PostCSS的插件执行顺序 文章其实是一系列的早就写完了. 才发现忘了发在SegmentFault上面, 最早发布于https://gitee.com/janking/Inf... 这次我继续研 ...

最新文章

  1. mysql or的效率_Mysql比较exists与in以及or的效率分析
  2. splunk的bucket组织目录——时间序列,按照时间来组织目录
  3. 从前后端分离到GraphQL,携程如何用Node实现?\n
  4. ApacheTomcat解析请求参数的过程
  5. Py之matplotlib:python包之matplotlib库图表绘制包的简介、安装、使用方法(matplotlib颜色大全)详细攻略
  6. 一直觉得饿是什么问题
  7. mysql varchar 225 和 varchar 60 区别
  8. spark.mllib:GradientBoostedTrees
  9. 学计算机专业体面吗,2021女生学计算机专业好吗 前景怎么样
  10. Spring中获取request的方法及其线程安全性分析
  11. 【Tricks】半监督深度学习训练和实现小Tricks
  12. python—将自定义函数的路径添加到系统路径中
  13. React中插入视频(video-react),自动播放
  14. [定理证明]正态随机过程又是马尔科夫过程的充要条件(高斯-马尔科夫过程的充要条件)...
  15. java 生成der_java – 我们如何将字符串从PEM转换为DER格式
  16. 三大突破让人工智能终成现实
  17. Oracle占用内存过高解决办法
  18. 新版HCIE考试有什么题型?各题型具体怎么考?
  19. 难溶盐在盐酸中的溶解度分析
  20. 《Hands-On Machine Learning with Scikit-Learn TensorFlow》习题答案 - 第一章

热门文章

  1. 夏威夷大学计算机专业排名,夏威夷大学(美国夏威夷大学排名)
  2. 机器学习之MATLAB代码--基于VMD与SSA优化lssvm的功率预测(多变量)(七)
  3. 数据血缘关系图 工具_面向数据字段的血缘关系
  4. 定义fact(n)函数,调用函数,返回值
  5. 计算机专业对环境保护,计算机与环境保护
  6. ubuntu找不到拼音输入,找不到中文拼音输入源
  7. indesign怎么拼图_用R来拼图和排版,告别AI和PS(二):调节宽度和高度
  8. Nginx入门以及开源博客Tale的部署
  9. Elastic Search(搜索引擎)
  10. 通俗易懂的讲解 网关是什么