知从青龙BootLoader是由知从科技自主研发的程序刷新软件(BootLoader)。使用知从青龙BootLoader的控制器,可以通过CAN、LIN、SPI、UART等通信方式实现应用程序的更新功能。目前,知从青龙BootLoader已支持NXP、Infineon、Renesas、ST等多家芯片,并且支持多家整车厂程序刷新规范,可提供定制开发服务。
此文档描述了知从青龙BootLoader基于SPC58NN平台,实现对GEEA2.0规范的支持。目前已实现支持VBF文件刷写、主从BootLoader刷写、压缩算法LZSS、数字签名认证等功能需求,满足GEEA2.0规范中大部分的刷写需求。
知从青龙BootLoader可应用于使用SPC58NN系列芯片的控制器程序刷新功能。支持的控制器包括:
Ø 车身控制器
Ø 网关控制器
Ø 车载娱乐系统控制器
Ø 电子驻车制动系统
Ø 胎压监测系统
Ø 电池管理系统
Ø 空调控制系统
Ø 车窗控制系统
Ø 门控系统
配置环境 | |
Hardware (Chip) | SPC58NN |
Compilers Supported | HighTec 4.9.3.0 / SPC5 Studio 6.0.0 |
Debugger | Isystem (IC5700) |
HighTec编译器 | |
编译选项 | @ccompilerincludelist.optfile -fno-common -O0 -g3 -W -Wall -Wextra -Wdiv-by-zero -Warray-bounds -Wcast-align -Wignored-qualifiers -Wformat -Wformat-security -pipe -DSTM_SPC58NN -DAUTOSAR_OS_NOT_USED -DCPU_SPC58NN84E7 -DUSE_CORE=2 -DUSE_IRQ -DUSE_EXCEPTIONS -fstrict-volatile-bitfields -fshort-double -mcpu=z4256n3 -mversion-info -std=gnu99 -mregnames |
链接选项 | -nocrt0 -nostartfiles -T"../ld/spc58nn-memory.x" -T"../ld/spc58nn-core2.ld" -Wl,--gc-sections -mcpu=z4256n3 -Wl,@objectlist.optfile -Wl,@libpathlist.optfile -lc55_gcc -Wl,-Map="$(basename $(notdir $@)).map" -Wl,--cref -fshort-double -Wl,-n -Wl,--extmap=a |
HighTec编译器 | |
编译选项 | @ccompilerincludelist.optfile -fno-common -O0 -g3 -W -Wall -Wextra -Wdiv-by-zero -Warray-bounds -Wcast-align -Wignored-qualifiers -Wformat -Wformat-security -pipe -DSTM_SPC58NN -DAUTOSAR_OS_NOT_USED -DCPU_SPC58NN84E7 -DUSE_CORE=2 -DUSE_IRQ -DUSE_EXCEPTIONS -fstrict-volatile-bitfields -fshort-double -mcpu=z4256n3 -mversion-info -std=gnu99 -mregnames |
链接选项 | -nocrt0 -nostartfiles -T"../ld/spc58nn-memory.x" -T"../ld/spc58nn-core2.ld" -Wl,--gc-sections -mcpu=z4256n3 -Wl,@objectlist.optfile -Wl,@libpathlist.optfile -lc55_gcc -Wl,-Map="$(basename $(notdir $@)).map" -Wl,--cref -fshort-double -Wl,-n -Wl,--extmap=a |
SPC5 Studio编译器 | |
编译选项 |
|
链接选项 |
Ø 适用于GEEA2.0平台规范
Ø 支持PBL-SBL的BootLoader架构
Ø支持应用程序和数据的更新功能
Ø支持CAN/UART等通信
Ø支持主从节点间的UART通信刷写
Ø 适配知从玄武程序更新工具,提供完整的程序更新解决方案
Ø 支持对称加密SHA256和AES128算法
Ø 支持非对称加密ECC和RSA2048算法
Ø 支持VBF文件解析
Ø 支持LZSS压缩算法的压缩和解压
知从玄武—程序更新工具
知从青龙BootLoader软件实现分层架构,分为硬件驱动层(HwDrv)、ECU抽象层(EcuAbstr)、系统服务层(SysSer)以及Boot管理层(BootManager)。并将整个软件进行模块化,其中:
Ø HwDrv
硬件驱动层实现芯片的硬件模块驱动,依赖于具体的芯片,不同的芯片需要替换此层的驱动。支持Uart驱动实现主从节点通信。
Ø EcuAbstr
ECU抽象层是对ECU的抽象,包含MCU外部的驱动。
Ø SysSer
系统服务层实现通信、诊断、内存管理、看门狗管理、安全管理等功能。支持LZSS压缩算法,SHA256对称加密算法,RSA2048非对称加密算法。
Ø BootManager
Boot管理层实现整个BootLoader软件模块的调度管理,并实现与应用程序的接口管理等。
ECU的内存分为PFLASH和RAM,PFLASH区分为Application&Data和BootLoader区,RAM区分为SBL和Data。
知从青龙BootLoader支持GEEA2.0规范的BootLoader状态切换流程,下图为BootLoader在不同状态切换的简化示例图:
当Application执行上电启动或执行复位启动时,PBL应开始执行初始化状态,其中PBL决定是否应启动Application。
如果ECU认为其存在有效Application,PBL将启动Application。
如果Application接收到诊断请求DiagnosticSessionControl,将通过执行Reset跳转PBL。
如果Reset是由应用程序中的诊断请求DiagnosticSessionControl(programmingSession)Warm start启动的,或者如果没有出现有效Application,则进入programmingSession状态。
如果启动类型是Cold start且存在有效Application,则Application启动。
知从青龙BootLoader支持GEEA2.0规范的BootLoader刷写需求,以下为部分已实现的GEEA2.0规范的需求功能:
Ø 安全刷写:
知从青龙BootLoader根据存储在非易失性存储器的Root Public Key,通过非对称加密算法RSA,对数据的真实性校验。若校验成功则通过对称加密算法SHA256和非对称算法RSA2048对数据完整性进行校验,保证安全刷写流程。
Ø 压缩算法:
知从青龙BootLoader 支持解析LZSS压缩算法对数据的压缩及对应数据结构的封装数据,同时支持非压缩数据的刷写。
Ø 主从BootLoader:
知从青龙BootLoader支持主从刷写功能。BootLoader在主节点上通过UART将上位机传输的Application数据转发给从节点上的BootLoader,并通过从BootLoader完成从节点上Application的更新。
Ø 支持VBF文件下载:
通过搭配知从玄武程序更新工具,知从青龙BootLoader可以解析VBF文件数据,将数据下载到ECU中,并按照GEEA2.0规范使用VBF中携带的Verification Block和Signature数据对完整性和可靠性进行校验。
青龙软件著作权登记证书
青龙软件产品登记证书
点击下载产品手册