Можно ли сделать обновление прошивки, используя Azure IoT Hub и хранилище BLOB-объектов? - PullRequest
0 голосов
/ 14 февраля 2020

У меня azure IoT-клиент, работающий на STM32H7 с Keil RTX 5 в качестве операционной системы. Я хочу загрузить двоичный файл из Azure (встроенное ПО) и обновить встроенное ПО на моем устройстве (STM32H7).

Что я сделал:

Я загрузил двоичный файл в Azure хранилище BLOB-объектов. У меня есть пример "iothub_client_device_twin_and_methods_sample. c", который работает и работает правильно (он подключается к Azure IoT-хабу без проблем)

Я хочу go о моем обновлении прошивки, загрузив этот двоичный файл, а затем записать его в область хранения на моем устройстве, но я думаю, что я рассмотрел последнюю часть.

Из моих текущих исследований я считаю, что правильный подход к этому состоит в том, чтобы каким-то образом создать облако для устройства сообщение, содержащее двоичный файл.

Мой вопрос основан на вышеизложенном:

Как правильно загрузить двоичный файл из хранилища BLOB-объектов с помощью C sdk на мое встроенное устройство ?

PS: Я видел пример обновления прошивки с использованием raspberry pi, но я не смог понять и изменить его для своих целей.

Любая помощь будет очень оценили. Спасибо.

Редактировать: мое обновление прошивки будет по беспроводной сети, отсюда необходимость в способе его загрузки с Azure

Спасибо

Ответы [ 2 ]

2 голосов
/ 14 февраля 2020

Вы можете посмотреть, как ESP-IDF реализует FOTA:

ESP32 OTA через HTTPS

ESPRESSIG - Обновления через эфир

Вы также можете взглянуть на следующий AN из NXP: Обновление прошивки с использованием вторичного загрузчика

Для загрузки прошивки вы можете использовать raw tcp / ip, http (s), ftp, et c ...

Если вы введете "google bootloader" в google, вы получите много полезного контента:

Почему каждый разработчик Cortex-M должен рассмотреть возможность использования загрузчика

От нуля до main (): Как написать загрузчик с нуля

0 голосов
/ 19 февраля 2020

В ответ на мой собственный вопрос:

Я обнаружил, что C sdk поддерживает загрузку файлов в хранилище BLOB-объектов, но не загрузку тогда. Наилучший подход к их загрузке - установить библиотеку HTTP и запросить загрузку файла из Azure хранилища. Я также обнаружил, что, похоже, нет никакого способа использовать C SDK для обновления прошивки по беспроводной сети, как я впервые себе представлял.

...