Thread 中讨论的其他器件:CC3235SF、 UNIFLASH
工具/软件:
我想为 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