我的 Azure IoT 客户端在 STM32H7 上运行,操作系统为 Keil RTX 5。我想要做的是从 Azure(固件)下载二进制文件并更新我的设备(STM32H7)上的固件。
我做了什么:
我已将二进制文件上传到 Azure Blob 存储。 我已经让示例“iothub_client_device_twin_and_methods_sample.c”正常工作并运行(它可以毫无问题地连接到 Azure IoT 中心)
我想通过下载这个二进制文件然后将其写入我设备上的存储区域来进行固件更新,但我认为我已经涵盖了后一部分。
根据我目前的研究,我认为正确的方法是以某种方式创建包含二进制文件的云到设备消息。
根据上述内容,我的问题是:
使用 C sdk 将二进制文件从 Blob 存储下载到我的嵌入式设备的正确方法是什么?
PS:我看到有一个使用树莓派进行固件更新的示例,但我无法理解它并根据我的目的对其进行修改。
任何帮助将不胜感激。谢谢。
编辑:我的固件更新将是无线固件,因此需要一种从 Azure 下载它的方法
谢谢
最佳答案
您可以看一下 ESP-IDF 实现 FOTA 的方式:
ESPRESSIG - Over The Air Updates
您也可以看看 NXP 的以下 AN: Firmware Update Using Secondary Bootloader
要下载固件,您可以使用原始 tcp/ip、http(s)、ftp 等...
如果你在google中输入“arm bootloader”,你会得到很多有用的内容:
Why every Cortex-M developer should consider using a bootloader
关于c - 是否可以使用 Azure IoT 中心和 Blob 存储进行固件更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60225635/