• ECU Bootloader自学笔记


    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 架构
    在这里插入图片描述

  • 相关阅读:
    buuctf web [极客大挑战 2019]BabySQL
    微服务·架构组件之网关
    Python3,9分钟撸完一个电脑录屏神器,女神说今晚要给我加鸡腿。
    ASP.NET Core 各版本 中间件或过滤器中获取Post参数方法
    C# WinForm —— 07 Form窗体介绍
    对象中扩展运算符的作用
    Kubernetes API 基础
    MyCat实战
    Android 10 如何自定义屏保功能
    Jenkins--部署--3.1--代码提交自动触发jenkins--方式1
  • 原文地址:https://blog.csdn.net/weixin_44182878/article/details/126441636