| 可能原因 | 解決方案 | 說明 |
| Buffer設定得過小,下載速度慢,從而下載逾時,導致OTA升級失敗。 | 檢查介面aiot_download_setopt的配置項AIOT_DLOPT_BODY_BUFFER_MAX_LEN的值的大小,增大該配置項的值後,重新發起OTA升級。 在Linux環境下,推薦將該值設定為2 KB。 | AIOT_DLOPT_BODY_BUFFER_MAX_LEN配置項指定用於接收韌體報文的Buffer的大小。 每當下載的韌體填充滿Buffer後,通知裝置端。該值越大,發起通知的次數越少,耗時越短。反之,過小的值會導致整體耗時偏長,受網速波動影響的可能性也越大。 同時,在多線程的系統中,如果下載任務執行慢, 會一直佔用CPU,影響其他業務的正常運行。 |
| OTA升級逾時時間設定太短,導致控制台顯示升級失敗。 | 在發起升級任務時,設定裝置升級逾時時間(分鐘)時,增大該項的值。具體操作,請參見配置OTA升級策略。 | 請根據下載的實際情況, 並充分考慮網路異常帶來的波動,保留一定的餘量,設定該項的值。 如果該值設定得太小,裝置在指定時間內未完成升級並且未上報新的版本號碼,物聯網平台控制台會提示失敗,裝置端的下載通道直接斷開。 |
| 設定OTA升級的升級範圍為定向升級時,無法找到目標裝置。 | 登入物聯網平台,檢查指定升級的裝置的版本號碼。具體操作,請參見查看升級情況。 如果裝置的版本號碼與待升級版本號碼不符,則重新上報版本號碼後,重新發起OTA升級。 | 檢查待升級裝置是否上報過版本號碼:
|
裝置端通過aiot_download_report_progress上報了100%的升級進度,但物聯網平台控制台顯示失敗。 | 檢查裝置完成OTA升級後,調用aiot_ota_report_version,上報最新的版本號碼。 | 物聯網平台控制台,根據裝置上報的版本號碼,判斷OTA升級成功與否,而非根據裝置上報的韌體下載百分比。 |
| 配置分段下載時,分段設定錯誤。 | 重新設定分段下載的相關參數,更多資訊,請參見發起OTA下載請求。 | 分段下載時,請保證以從頭至尾的順序進行分段,且各個分段間不能有重疊地區。 例如,分段參數分別設定為 |
| 網路原因 | 請檢查網路連接。網路連接恢複正常後重試。 | 下載過程中, 如果出現網路斷開的情況, 會導致裝置收取不到報文。常見的錯誤提示如下: |