This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
我在 OTA 过程中遇到一些错误。
这是日志、我认为它仅在初始化 OTA 库时的第一步失败。
GEN:OtaInit: call Ota_init<\r><\n> OTA_init: sizeof CdnClient=576, sizeof OtaArchive=9128<\r><\n> OTA_init: sizeof OtaLib_t=11908, sizeof OTA_memBlock=7800<\r><\n> OTA_init: ERROR buffer size OtaLib_t=11908 < OTA_memBlock=7800<\r><\n> GEN:OtaInit: ERROR from Ota_init. Status=-20701<\r><\n> GEN:otaInit() failed : -20701
OtaLib_t 结构(在 OtaLib.h 中定义)的大小太大。
您必须更新了结构的缓冲区大小之一。 其中大多数是在 ota.h 中定义的(例如 NET_BUF_SIZE (1440)、 MAX_URL_SIZE (512)、 MAX_VENDIR_DIR_SIZE (50)、 MAX_VENDOR_TOKEN_SIZE (96)、 MAX_SERVER_NAME (64)等)。 它不应累加11908B (应小于7800)。
您还可以将 OTA_BLOCK_SIZE (7800)更新为大于结构大小、但我认为更好的方法是了解您更新的定义并尝试减小该定义。
您好!
感谢你的答复。
我没有更改它的结构大小。 我使用的是与我之前使用过的相同的 Ota 代码。
我只需更改项目名称和项目目录。 这可能会导致任何问题。
尝试了解结构大小是如何变得如此大的。
您好!
我在这里遇到了问题、我尝试将 OtaArchive.h 中的@MAX_BUNDK_CMD_FILES 变量从8更新为15、这就是为什么 OtaLib 的大小由于该变量而增加的原因。 我已将@MAX_BUND_CMD_FILES 更改为11、并将小位@OTA_BLOCK_SIZE 增大到10K、现在可以了。