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.

[参考译文] LAUNCHXL-CC3235SF:Processota:----- OTA 故障(–20109)

Guru**** 2556410 points
Other Parts Discussed in Thread: CC3235SF, UNIFLASH

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1558665/launchxl-cc3235sf-processota------ota-failure--20109

器件型号:LAUNCHXL-CC3235SF
Thread 中讨论的其他器件:CC3235SFUNIFLASH

工具/软件:

我想为 OTA 更新举例说明。 因此、我失败了、使用 TLS 的下拉框云 OTA、使用 TLS 的自定义云 OTA、自定义云 OTA 非 TLS 和本地 OTA 非安全 http。 他们没有工作。 其中大多数显示–20109 错误(只有本地 OTA 无法创建 HTTP 服务器。)。
现在、我将通过使用 cc3235sf 的内部 OTA 更新来了解更简单的示例。
我使用 simplelink_cc32xx_sdk_7_10_00_13 的 mqtt_client_CC3235SF_LAUNCHXL_tirtos7_ticlang 示例。

在 Uniflash 中、下面是我的用户文件:
/otaimages/cc3235sf.tar
/sys/mcuflashimg.bin
/www/help.html
/www/index.html
/www/ota.html
/www/settings.html
/ digicert_high_assurance_ca.der
/dummy-root-ca-cert
/dummy-root-ca-cert-key
/ dummy_ota_vendor_cert.der
ota.dat
/rootcacerts.pem

在中、/otaimages/cc3235sf.tar 由 dummy_ota_vendor_key.der 在创建时签名。

我运行 MQTT 示例并通过发送包含“cc32xx/OTA"主题“主题的“内部“有效载荷来触发 MQTT 的 OTA 过程。
以下是示例的控制台输出:

============================================
MQTT client Example Ver: 2.0.3
============================================

CHIP: 0x31000019
MAC: 3.0.0.25
PHY: 3.1.0.0
NWP: 4.0.1.33
ROM: 0
HOST: 3.0.1.71
MAC address: b0:b1:13:xx:xx:xx

============================================
[WIFI::INFO] [SlWifiConnEventHandler] POWERED_UP
[WIFI::INFO] MAC address: b0:b1:13:70:87:9a
[WIFI::INFO] [Event] STA connected to AP - BSSID:d4:b7:09:xx:xx:xx, SSID:XXXXXXXXXX_5G
[WIFI::INFO] [NETAPP EVENT] IP Acquired: IP=192.168.1.85 , Gateway=192.168.1.1
[SlNetConnEventHandler] I/F 1 - CONNECTED (IP LEVEL)!
[SlNetConnEventHandler] I/F 1 - CONNECTED (INTERNET LEVEL)!
[MQTT_APP::INFO] MQTT_EVENT_CONNACK

[MQTT_APP::INFO] Trigger OTA...(MQTT:: internal)
[MQTT_APP::INFO] Starting Internal Update
[OTA::ERROR] ProcessOta: ---- OTA failure (-20109)
[MQTT_APP::ERROR] OTA_NOTIF_DOWNLOAD_ERROR (-20109)


稍后、我更改了 mqtt_client_app.c (202508091902_cc3235sf_mqttclient.tar) 中的 tar 文件命名、如果有任何命名问题但没有结果、则错误与之相同(–20109)。

static void StartInternalUpdate()
{
#if INTERNAL_UPDATE_SUPPORT
TarFileParams_t tarFileParams;

tarFileParams.pPath = "/otaImages/20250828091902_cc3235sf_mqttclient.tar";
tarFileParams.token = 0;
tarFileParams.pVersion = NULL;
UART_PRINT("Starting Internal Update");
OTA_IF_readImage(&tarFileParams, 0); // use default HTTP port and no security
#else
UART_PRINT("Internal Update is not enabled. Please enable INTERNAL_UPDATE_SUPPORT macro in ota_settings.h");
#endif
}

后来,我将文件夹名称 otaImages 更改为 otaimages ,但结果是相同的:

static void StartInternalUpdate()
{
#if INTERNAL_UPDATE_SUPPORT
TarFileParams_t tarFileParams;

tarFileParams.pPath = "/otaimages/20250828091902_cc3235sf_mqttclient.tar";
tarFileParams.token = 0;
tarFileParams.pVersion = NULL;
UART_PRINT("Starting Internal Update");
OTA_IF_readImage(&tarFileParams, 0); // use default HTTP port and no security
#else
UART_PRINT("Internal Update is not enabled. Please enable INTERNAL_UPDATE_SUPPORT macro in ota_settings.h");
#endif
}

这是 tar 文件结构:

user@LAPTOP-XXXXXX MINGW64 ~/modified_ota_signer
$ tar -tvf 20250828091902_cc3235sf_mqttclient.tar
drw-r--r-- 0/0 0 1970-01-01 03:00 20250828091902_CC3235SF_mqttclient/
drw-r--r-- 0/0 0 1970-01-01 03:00 20250828091902_CC3235SF_mqttclient/0/
drw-r--r-- 0/0 0 1970-01-01 03:00 20250828091902_CC3235SF_mqttclient/1/
drw-r--r-- 0/0 0 1970-01-01 03:00 20250828091902_CC3235SF_mqttclient/2/
-rw-r--r-- 0/0 3231 1970-01-01 03:00 20250828091902_CC3235SF_mqttclient/0/ota.cmd
-rw-r--r-- 0/0 72 1970-01-01 03:00 20250828091902_CC3235SF_mqttclient/0/ota.sign
-rw-r--r-- 0/0 975 1970-01-01 03:00 20250828091902_CC3235SF_mqttclient/1/dummy-root-ca-cert
-rw-r--r-- 0/0 614 1970-01-01 03:00 20250828091902_CC3235SF_mqttclient/2/cert/dummy_ota_vendor_cert.der
-rw-r--r-- 0/0 614 1970-01-01 03:00 20250828091902_CC3235SF_mqttclient/2/sys/dummy_ota_vendor_cert.der
-rw-r--r-- 0/0 143412 1970-01-01 03:00 20250828091902_CC3235SF_mqttclient/2/sys/mcuflashimg.bin
-rw-r--r-- 0/0 801 1970-01-01 03:00 20250828091902_CC3235SF_mqttclient/2/www/help.html
-rw-r--r-- 0/0 1010 1970-01-01 03:00 20250828091902_CC3235SF_mqttclient/2/www/index.html
-rw-r--r-- 0/0 9943 1970-01-01 03:00 20250828091902_CC3235SF_mqttclient/2/www/ota.html
-rw-r--r-- 0/0 17029 1970-01-01 03:00 20250828091902_CC3235SF_mqttclient/2/www/settings.html
-rw-r--r-- 0/0 969 1970-01-01 03:00 20250828091902_CC3235SF_mqttclient/2/digicert_high_assurance_ca.der
-rw-r--r-- 0/0 1192 1970-01-01 03:00 20250828091902_CC3235SF_mqttclient/2/dummy-root-ca-cert-key
-rw-r--r-- 0/0 614 1970-01-01 03:00 20250828091902_CC3235SF_mqttclient/2/dummy_ota_vendor_cert.der
-rw-r--r-- 0/0 2705 1970-01-01 03:00 20250828091902_CC3235SF_mqttclient/2/rootcacerts.pem

如您所见、连接到网络正常、MQTT 正常。 但是、我有–20109 错误。
我无法通过。 如何解决?

此致、

Onur

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Onur、我看一下。 与另一个线程一样、我将通过星期五为您提供更新。 感谢您的耐心。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Onur。 OTA 错误–20109 代表 archive_status_error_bundle_CMD_MAX_object、您可以在 SDK-INSTALL-dir/source/ti/net/ota/source/OtaArchive.h 中找到该文件 如果您查看 SDK-INSTALL-DIR/source/ti/net/ota/source/OtaArchive.c、可以看到当您超过最大捆绑包对象时、会返回错误常量。

    您可以尝试减少 OTA 捆绑包中的项目数量吗?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Brandon、

    感谢您的回答。  它正在工作。