我在带有 MKM35Z512VLL7 控制器的智能电表项目中使用 AN12837SW 参考设计。我查看了"固件升级和引导加载程序代码( 通过 UART" ),但仍有一些疑问。请澄清以下几点:
我应该在电脑上使用哪个软件工具来测试固件升级过程?
我应该如何加载 .bin文件,将其分成 256 字节的区块,然后添加 CRC 数据进行传输?
我已经阅读了AN12829 号文件,但我无法清楚地理解 OTA 帧格式。能否请您详细解释一下?
是否有测试固件升级功能的特定软件工具或其他文档?
请找到随附的 FWUpgradeClient.exe 源代码。它是在 Visual Studio IDE 中版本 的 C++ 代码。
BR,
Omar
我正在检查 AN 上引用的 Fwtransferclient 是否可供参考。以及软件中其他命令的详细信息。
只要符合 AN12829 中有关通信的详细规定,选择任何工具都可以。我对 DLMS 不熟悉,无法确认是否可以使用,这需要贵方验证。
BR,
Omar
亲爱的先生
感谢您的反馈,
(i) 我查看了 AN12829 中 5.1.2.3 的描述。 但是在 AN12837SW 智能电表固件设计中,在 comportcommandprocessing.c 函数中还有更多 OTA 命令可用 k_cmdfwuinit、k_cmdfwu hdr 、 k_cmdfwutx。 此外,在接收固件代码(communication.cv)时,可以使用 1 字节的 Auth-Enc-Flag 和 AES-GCM-128 解密固件。因此,AN12829 文档与 AN12837SW 固件不正确匹配。这是我的困惑。
(ii) 如何准备 " PC 工具 " 用于通过 uart3 进行固件升级测试。恩智浦有任何参考工具/任何文档吗?恩智浦在 AN12829 中提到,它已经由 " FWtransferclient.exe " 进行了测试。我在哪里能得到这个工具?我们可以把电脑工具当作自己的工具安排吗?
(iii) 能否使用DLMS总监进行固件测试?
(iv) 哪种串行终端工具最适合编写C语言脚本。如何启动脚本 .
我期待您提供宝贵的解决方案。
1.目前还没有专门的工具。预计 PC 主机工具将由用户根据 5.1.2.3 的描述创建,其中详细说明了通信框架应如何设置。
2.您可以创建一个 python 脚本,将图像分割成 256 字节的块,但没有具体的方法。
3.能否请您更具体地说明您的疑问?哪部分不清楚?你是指图 10 中框架所在的流程吗?
-命令 nxpfwutx。
文件大小/块大小
-固件按块划分。为了识别固件块,将随块一起传输 4 字节长的区块号。每次接收到新文件块并将其编程到目标闪存库时,都会更新并保存当前块计数。
-命令 nxpfwuact。
4.AN 中提到一个名为 FWUpgradeClient 的自定义工具,让我检查一下是否可用。
BR,
Omar