OTA功能是所有Z-Wave 700终端设备的必备功能。Z-Wave 700嵌入式框架已经实现了该功能,但是您需要确保刷新OTA引导加载程序和一组加密密钥。
工具准备:
Z-Wave 700 Dongle:
https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-23205201980.4.62d31044HOJTBi&id=628622941808
默认位置:
- Commander安装位置
C:\SiliconLabs\SimplicityStudio\v4\developer\adapter_packs\commander* - Bootloader位置
C:\SiliconLabs\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v2.7\protocol\z-wave\Apps\bin - 示例应用程序位置
C:\SiliconLabs\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v2.70\protocol\z-wave\Apps\bin
设备的序列号/设备ID也必须已知(例如,可以在Simplicity Studio中看到)。在此示例中,我们使用的板的ID为440147067
—前期工作:密钥
步骤A: 生成所需的密钥
commander.exe gbl keygen --type ecc-p256 -o vendor_sign.key
这将在与指挥官相同的位置生成3个文件。
* vendor_sign.key
* vendor_sign.key.pub
* vendor_sign.key-tokens.txt
步骤B: 产生加密秘钥
commander.exe gbl keygen --type aes-ccm -o vendor_encrypt.key
这将在与命令程序
* vendor_encrypt.key相同的位置生成1个文件
—前期工作:创建用于初始设置的固件
步骤C: 使用Simplicity Studio,打开Switch On Off示例应用程序并进行编译。
这将生成一个Hex文件,我们将使用该文件来刷新设备进行初始设置(将在步骤6中介绍)。
—带有引导加载程序和初始固件
设置设备Z-Wave芯片不带引导加载程序,因此第一步是准备带有OTA引导加载程序的芯片,并且将更新固件的初始映像。
步骤1: 清除Flash
commander.exe device masserase -s 440147067 -d Cortex-M4
步骤2: 复位
commander.exe device reset -s 440147067 -d Cortex-M4
步骤3: 清除引导加载程序
commander.exe device pageerase --region @bootloader -s 440147067 -d Cortex-M4
步骤4: “擦除锁位”Page
commander.exe device pageerase --region @lockbits -s 440147067 -d Cortex-M4
信息:不需要此步骤。如果您擦除“锁定位”页面,则应用程序映像将自动生成一组新的S2私钥/公钥。有关“锁定位”页面的更多信息,请参阅 Z-Wave 700:S2密钥对存储在哪里?。
另外:如果确实要擦除“锁定位”页面,则像在此KB中所指示的那样,在刷新生成的密钥(步骤7)之前,先刷新引导程序(步骤5)和应用程序映像(步骤6),这一点很重要 。
步骤5: 刷新OTA引导加载程序映像
commander.exe flash C:\SiliconLabs\SimplicityStudio\v4\developer\sdks\zwave\v7.11.0\Apps\bin\OTA-bootloader-fg13-combined.s37 -s 440147067 -d Cortex-M4
现在可以使用固件映像刷新设备了。
—烧录设备固件
我们也将使用Commander,但也可以使用Simplicity Studio来完成。
步骤6: 将示例应用程序写入闪存
NB:您必须已完成步骤C。
commander.exe flash "C:\Users\almunkha\SimplicityStudio\v4_workspace\SwitchOnOff\GNU ARM v7.2.1 - Debug\SwitchOnOff.hex" --address 0x0 --serialno 440147067 --device Cortex-M4
—烧录密钥
步骤7: 对前期工作生成的密钥进行编程
commander.exe flash --tokengroup znet --tokenfile vendor_encrypt.key --tokenfile vendor_sign.key-tokens.txt -s 440147067 -d Cortex-M4
步骤8: 重设装置
commander.exe device reset -s 440147067 -d Cortex-M4
—将设备包含到Z-Wave网络
现在,该芯片已使用OTA引导加载程序和初始映像进行设置。
步骤9: 读出DSK
读出DSK 通过使用Commander或Simplicity Studio。
步骤10:
使用PC Controller将DUT纳入网络。
步骤11:
使用PC Controller中的“ OTA固件更新”选项卡获取准备OTA的版本。
固件版本应为(对于Z-Wave SDK 7.13):10.13
—前期工作:创建OTA固件映像
在继续进行固件更新之前,我们需要构建示例应用程序的新版本。
步骤D:在Simplicity Studio中,确保增加固件版本。
例如,将版本更改为:
#define APP_REVISION (ZAF_VERSION_MINOR+1)
这会将固件版本增加到(对于Z-Wave SDK 7.13):10.13
生成以生成新的十六进制文件。
步骤E:创建用于OTA的gbl文件。
commander.exe gbl create appname_mySwitch.gbl --app "C:\Users\almunkha\SimplicityStudio\v4_workspace\SwitchOnOff\GNU ARM v7.2.1 - Debug\SwitchOnOff.hex" --sign vendor_sign.key --encrypt vendor_encrypt.key --compress lz4
这将生成1个新文件,用于OTA更新
* appname_mySwitch.gbl
—最后;OTA更新
步骤12: OTA更新
使用PC控制器使用文件名appname_mySwitch.gbl进行OTA更新。
选择文件后,单击“更新”以启动OTA更新。
注意:如果使用PC控制器进行OTA更新,请确保使用5.38或更高版本。
—结果
固件更新Md状态报告可以在PC Controller GUI或Zniffer跟踪中看到。
状态0xFF =成功