是否可以使用 Azure IoT 中心和 Blob 存储进行固件更新?
Is it possible to do a firmware update using the Azure IoT Hub and Blob storage?
我在以 Keil RTX 5 作为操作系统的 STM32H7 上安装了 azure IoT 客户端 运行。我想要做的是从 Azure(固件)下载一个二进制文件并更新我的设备(STM32H7)上的固件。
我做了什么:
我已将二进制文件上传到 Azure blob 存储。
我的示例 "iothub_client_device_twin_and_methods_sample.c" 工作正常并且 运行 正确(它连接到 Azure IoT 中心没有问题)
我想通过下载这个二进制文件然后将其写入我设备上的存储区域来进行我的固件更新,但我想我已经涵盖了后一部分。
根据我目前的研究,我认为正确的方法是以某种方式创建包含二进制文件的云到设备消息。
我的问题是,基于以上:
使用 C sdk 从 blob 存储下载二进制文件到我的嵌入式设备的正确方法是什么?
PS:我看到有一个使用 raspberry pi 进行固件更新的示例,但我无法理解它并根据我的目的对其进行修改。
如有任何帮助,我们将不胜感激。谢谢。
编辑:我的固件更新将是无线固件,因此需要一种从 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 sdk确实支持上传文件到blob存储但不支持下载。我发现下载它们的最佳方法是安装 HTTP 库并请求从 Azure 存储下载文件。我还发现,似乎没有办法像我最初想象的那样使用C SDK进行固件无线更新。
我在以 Keil RTX 5 作为操作系统的 STM32H7 上安装了 azure IoT 客户端 运行。我想要做的是从 Azure(固件)下载一个二进制文件并更新我的设备(STM32H7)上的固件。
我做了什么:
我已将二进制文件上传到 Azure blob 存储。 我的示例 "iothub_client_device_twin_and_methods_sample.c" 工作正常并且 运行 正确(它连接到 Azure IoT 中心没有问题)
我想通过下载这个二进制文件然后将其写入我设备上的存储区域来进行我的固件更新,但我想我已经涵盖了后一部分。
根据我目前的研究,我认为正确的方法是以某种方式创建包含二进制文件的云到设备消息。
我的问题是,基于以上:
使用 C sdk 从 blob 存储下载二进制文件到我的嵌入式设备的正确方法是什么?
PS:我看到有一个使用 raspberry pi 进行固件更新的示例,但我无法理解它并根据我的目的对其进行修改。
如有任何帮助,我们将不胜感激。谢谢。
编辑:我的固件更新将是无线固件,因此需要一种从 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 sdk确实支持上传文件到blob存储但不支持下载。我发现下载它们的最佳方法是安装 HTTP 库并请求从 Azure 存储下载文件。我还发现,似乎没有办法像我最初想象的那样使用C SDK进行固件无线更新。