![]() |
![]() |
![]() |
OAD 概述
本章节旨在从更高层次解释OAD主要概念,这些概念将在下一章节进一步扩展。一些概念,例如Boot镜像管理(BIM)在具体实现细节上可能有所不同。但是本章尽可能的覆盖这些概念,下一章节解释它们具体实现细节。
OAD类型
BLE5-Stack只支持片外OAD(off-chip OAD)。下载的镜像文件保存在低功耗的外部flash里面,通过BIM加载到C2640R2F内部flash中。
OAD 拓扑概述
实现OAD自定义GATT service需要两个BLE设备。OAD数据交换中涉及以下定义:
名称 | 概念 |
---|---|
OAD Target | 该设备固件通过空中传输更新,该设备必须支持TI OAD service |
OAD Downloader | 该设备负责接收镜像文件,然后通过空中传输传送给OAD Target |
OAD Target始终是实现OAD服务GATT服务端的设备。通常它是一个将要进行固件更新的peripheral设备。OAT Target使用boot镜像管理器(BIM)协助应用程序进行新的固件镜像文件升级。当设备复位之后执行BIM,并确定是否进行固件更新,如果没有固件更新,BIM将跳转到主程序运行。
OAD Downloader始终是实现OAD服务GATT客户端的设备。通常它是提供固件更新镜像文件的central设备。下图显示了执行OAD所需的设备。OAD Downloader可以使任何满足BLE的设备(例如智能手机)。
OAD镜像文件元数据(OAD Image Metadata)
使用OAD传输的所有固件均为二进制格式,并包含一个镜像文件元数据头,该元数据头的信息用于OAD服务确定镜像文件是否可以下载,或在BIM中使用元数据头确定镜像文件应该被加载主程序flash中还是直接运行主程序。为防止该元素头信息被多次计算。所有的TI OAD镜像文件使用一个标准的16位元数据向量。该向量被嵌入到镜像文件开始处,占用应用程序固件代码的前16个字节。
本部分将介绍元数据向量中的各个字段及其含义。
大多数元数据检查通过OADTarget_validateNewImage()
函数完成.
TI提供了一个工具用于生成OAD就绪镜像文件,也就是包含元数据向量的将向文件,参考 Generating Metadata Vector for OAD Image.
下表显示了元数据向量各个字段的描述。
域名 | 大小(byte) | 描述 |
---|---|---|
CRC | 2 | 循环冗余校验 |