知从青龙BOOTLOADER ST SPC58NN GEELY GEEA2.0
功能概括

 知从青龙BootLoader是由知从科技自主研发的程序刷新软件(BootLoader)。使用知从青龙BootLoader的控制器,可以通过CAN、LIN、SPI、UART等通信方式实现应用程序的更新功能。目前,知从青龙BootLoader已支持NXP、Infineon、Renesas、ST等多家芯片,并且支持多家整车厂程序刷新规范,可提供定制开发服务。

       此文档描述了知从青龙BootLoader基于SPC58NN平台,实现对GEEA2.0规范的支持。目前已实现支持VBF文件刷写、主从BootLoader刷写、压缩算法LZSS、数字签名认证等功能需求,满足GEEA2.0规范中大部分的刷写需求。

企业微信截图_16709203496650.png

应用领域

知从青龙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编译器

编译选项

                                                                                  bbbbabff675d6e6d27e0af895bf41c82.png

链接选项

image.png


软件静态架构

产品特点

Ø  适用于GEEA2.0平台规范

Ø 支持PBL-SBL的BootLoader架构

Ø支持应用程序和数据的更新功能

Ø支持CAN/UART等通信

Ø支持主从节点间的UART通信刷写

Ø 适配知从玄武程序更新工具,提供完整的程序更新解决方案

Ø 支持对称加密SHA256和AES128算法

Ø 支持非对称加密ECC和RSA2048算法

Ø 支持VBF文件解析

Ø 支持LZSS压缩算法的压缩和解压


image.png

知从玄武—程序更新工具


软件架构

image.png


         知从青龙BootLoader软件实现分层架构,分为硬件驱动层(HwDrv)、ECU抽象层(EcuAbstr)、系统服务层(SysSer)以及Boot管理层(BootManager)。并将整个软件进行模块化其中

Ø  HwDrv

硬件驱动层实现芯片的硬件模块驱动,依赖于具体的芯片,不同的芯片需要替换此层的驱动。支持Uart驱动实现主从节点通信。

Ø EcuAbstr

ECU抽象层是对ECU的抽象,包含MCU外部的驱动。

Ø SysSer

系统服务层实现通信、诊断、内存管理、看门狗管理、安全管理等功能。支持LZSS压缩算法,SHA256对称加密算法,RSA2048非对称加密算法。

Ø BootManager

Boot管理层实现整个BootLoader软件模块的调度管理,并实现与应用程序的接口管理等。

内存结构


image.png

ECU的内存分为PFLASH和RAM,PFLASH区分为Application&Data和BootLoader区,RAM区分为SBL和Data。

支持GEEA2.0规范

        知从青龙BootLoader支持GEEA2.0规范的BootLoader状态切换流程,下图为BootLoader在不同状态切换的简化示例图:


image.png                                             


当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规范的需求功能:


Ø  安全刷写

image.png


知从青龙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数据对完整性和可靠性进行校验。


相关证书

image.png

青龙软件著作权登记证书

image.png

青龙软件产品登记证书


相关下载
产品手册

点击下载产品手册