如何在 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。
- 仅在服务器端修改 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。
5.在控制台发出cli命令<plugin ota-storage-common printImages>,应该会打印出如下信息,说明ota文件解析正确,ota服务器可用。
下一步,您可以尝试设置 ota 客户端以从该 ota 服务器下载 ota 固件。