如何在 SoC 模式下设置 ota 服务器(带外部 SPI 闪存)

Zigbee Stack 已经提供了 NCP 模式的 OTA 服务器解决方案,其中无线 (OTA) 升级服务器应用程序在具有 POSIX 文件系统的主机上运行。然而,一些拥有更精简“瘦”网关解决方案的客户寻求在片上系统 (SoC) 设计模型上实现 OTA 服务器设备。以下是有关如何在 SoC 设备上设置 OTA 服务器的一些说明。

硬件平台:安装到 WSTK 的 EFR32MG12(BRD4162 开发板)

软件平台:EmberZNet 6.4.1 SDK 和 Zigbee 应用框架(SOC,不是主机)

Bootoader:SPI flash存储bootloader(单镜像),ota镜像存储在SPI flash中

1.生成Z3light示例并启用ota服务器相关插件和选项,更多详细信息请参考附件isc文件。为了适配 OTA Simple Storage EEPROM Driver Plugin 的代码逻辑,必须禁用 SOC Bootloading Support 选项,并且必须将 OTA Storage Start Offset 设置为 0。

如何在 SoC 模式下设置 ota 服务器(带外部 SPI 闪存)

  1. 仅在服务器端修改 emAfOtaStorageDriverGetRealOffset() 如下。

bool emAfOtaStorageDriverGetRealOffset(uint32_t* offset,

uint32_t* length)
{

bool spansBreak = false;

uint32_t realOffset = *offset;

*offset = realOffset;

return spansBreak;

}
3.构建引导加载程序和Z3light应用程序固件并将它们上传到板上。

4.使用commander工具将ota文件刷入SPI flash。

如何在 SoC 模式下设置 ota 服务器(带外部 SPI 闪存)

5.在控制台发出cli命令<plugin ota-storage-common printImages>,应该会打印出如下信息,说明ota文件解析正确,ota服务器可用。

如何在 SoC 模式下设置 ota 服务器(带外部 SPI 闪存)

下一步,您可以尝试设置 ota 客户端以从该 ota 服务器下载 ota 固件。