全部產品
Search
文件中心

IoT Platform:OTA升級失敗的原因有哪些?

更新時間:Jun 30, 2024

可能原因解決方案說明
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下載請求分段下載時,請保證以從頭至尾的順序進行分段,且各個分段間不能有重疊地區。

例如,分段參數分別設定為[0,1024][1024, 2048],其中第1024個位元組重複下載了2次,導致最終校正和失敗。您需將其修改為[0, 1024][1025, 2048]

網路原因請檢查網路連接。網路連接恢複正常後重試。

下載過程中, 如果出現網路斷開的情況, 會導致裝置收取不到報文。常見的錯誤提示如下:

download failed, error code is -3864, try to send renewal request