- 최신
- 최다 투표
- 가장 많은 댓글
Hi Andrew. Please check the value of OTA_MAX_BLOCK_BITMAP_SIZE
in your project. I suspect it's 128. That means 128 bytes, or 1024 bits, to track the blocks. If so, you will need to increase this value to have enough bits for your number of blocks.
- https://github.com/FreeRTOS/FreeRTOS/blob/391c79958f635ee5476dcf2774dab59e2b151eff/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo/DemoTasks/OtaOverMqttDemoExample.c#L494
- https://github.com/aws/aws-iot-device-sdk-embedded-C/blob/c70269486b3fdcb6d6e85e999059d0bd35e732cd/demos/ota/ota_demo_core_mqtt/ota_demo_core_mqtt.c#L330
You should review all of these settings and tailor to your needs: https://github.com/aws/ota-for-aws-iot-embedded-sdk/blob/fb4aece8c7ee4211b17ee48196222c04795b7a51/source/include/ota_private.h#L62-L70
More information here (although it doesn't cover the bitmap setting): https://www.freertos.org/Documentation/api-ref/ota-for-aws-iot-embedded-sdk/docs/doxygen/output/html/ota_config.html
As a side point, does your device include a HTTP client? With such a large file, your MQTT messaging costs will likely rival your job action costs. You may find HTTP file transfer to be more cost effective.
관련 콘텐츠
- AWS 공식업데이트됨 3년 전
Ahhh OTA_MAX_BLOCK_BITMAP_SIZE was indeed the problem. There are so many config files tucked away in the library, which I had been avoiding because they are inside a git submodule. I see now there are many configuration settings within the library to adjust, thank you so much for your great answer! Re:HTTP no we do not have an HTTP client currently, and since we are using an external secure element for TLS, which is working well for MQTT, we have been leaning on MQTT to fulfill this download, as it is all implemented and working well. The AWS costs arn't a big concern.