• Silicon labs Gecko bootloader 升级用的GBL文件格式【四】


    本系列的文章用来说明Gecko bootloader(下称bootloader)的功能,原理,内存分配等,而本文则是用来介绍升级过程中用到的GBL文件格式,包括加密和不加密的GBL文件。

    作为一个系列的文章,如果有不清楚的,可以先阅读

    1.   Gecko bootloader的介绍(Silicon Labs) 【一】

    2.   Silicon Labs Gecko bootloader的主要特性 【二】

    3.   Silicon Labs Gecko bootloader的存储分配 【三】

    EFR32是目前最主流的ZigBee平台之一,由silicon labs原厂推出的bootloader功能很完整,通过simplicity commander软件将升级镜像打包为GBL文件,便可以利用网关等设备对终端进行升级。GBL文件即要被应用层的传输协议识别,同时也需要让bootloader识别。

    标签

    由于GBL文件由多个字段组成,为了能够将各字段的数据进行标识清楚,采用了标签,标签当中可以指明后续数据内容的长度和格式。标签的格式如下:

    标签号  / Tag ID

    标签长度 / Tag Length

    标签数据 / Tag Payload

    4 bytes

    4 bytes

    可变长度 (由标签长度决定)

    标签又分为明文标签和加密标签

    明文标签列表如下

    标签名称 / Tag Name

    编号 / ID

    描述 / Desc

    GBL Header

    0x03A617EB

    GBL文件的第一个标签,包含GBL文件的版本,并标明该文件是否签名和加密

    GBL Application info

    0xF40A0AF4

    包含应用程序升级固件的(描述)信息

    GBL SE Upgrade

    0x5EA617EB

    包含一个完整的加密的Secure Element,仅在Series 2上有用

    GBL bootloader

    0xF50909F5

    包含了一个完整的bootloader

    GBL Program Data

    0xFE0101FE or

    0xFD0303FD

    位于特定地址应用程序的程序数据信息

    GBL Program LZ4

    Compressed Date

    0xFD0505FD

    包含LZ4压缩信息,解压后得到位于特定地址应用程序的程序数据信息

    GBL Program LZMA

    Compressed Data

    0xFD0707FD

    包含LZMA压缩信息,解压后得到位于特定地址应用程序的程序数据信息

    GBL Metadata

    0Xf60808f6

    这部分数据bootloader并不解析,应用程序可以通过特定回调函数读出,(可用来扩展功能,传递数据)

    GBL Signature

    0xf70a0af7

    ECDSA-P256签名,签过文件得到结果时,存在这个标签当中

    GBL End

    0xfc0404fc

    这个标签总是GBL文件的最后一个标签,包括一个32位的CRC校验码,用来检查文件的完整性。

    使用明文GBL文件,可以使用下面的系列来构成文件。

     

    加密标签列表如下

    标签名称 / Tag Name

    编号 / ID

    描述 / Desc

    GBL Header

    0x03A617EB

    这个标签与明方标签一样,也必须是GBL文件的第一个标签,不同的是,标签要指明GBL文件是加密的

    GBL Encryption Init Header

    0xFA0606FA

    包含有关镜像加官的信息,如Nonce和加密数据的数量。

    GBL Encrypted Program

    Data

    0Xf90707f9

    加密的数据负载,其中的数据是明文GBL标签,可能是Application info, Bootloader, Metadata 或者Program等其中之一。这一标签使用AES-CTR-128加密

    使用加密的GBL文件,可以使用下面的系列来构成文件。

     

    关于Bootloader, 先说这么多,以后有内容再补充

  • 相关阅读:
    mysql常用技能分享
    php生成器使用总结
    MySQL索引使用方法和性能优化
    servlet相关
    UML图
    How Tomcat Works
    字符串编码
    高效工作
    php 设计模式总结
    python之装饰器
  • 原文地址:https://www.cnblogs.com/newbit/p/boot4.html
Copyright © 2020-2023  润新知