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.

[参考译文] LAUNCHCC3220MODASF:启动 CC3220MODASF 套件中的 Dropbox Server 运行 Cloud_OTA 示例时遇到错误

Guru**** 2482105 points
Other Parts Discussed in Thread: CC3220SF, UNIFLASH

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1334638/launchcc3220modasf-errors-encountered-running-cloud_ota-example-with-dropbox-server-on-launch-cc3220modasf-kit

主题中讨论的其他器件:CC3220SFUNIFLASH

大家好、

我正在尝试使用 Dropbox 服务器在我的 Launch CC3220MODASF 开发套件上运行 cloud_ota 示例。 我认为我已正确配置所有内容、但遇到以下错误。


OTA 应用程序-版本0.10.00.03

SimpleLinkInitCallback:始于角色0
主机驱动程序版本:3.0.1.61
内部版本3.15.0.1.31.2.0.0.2.2.0.7

============================

配置示例版本 1.0.16
============================

芯片0x31000019
MAC 31.2.0.0.0
PHY 2.2.0.7
NWP3.15.0.1
ROM 0
主机3.0.1.61
MAC 地址:10:ce:a9:47:bc:8f

开始配置! MODE=2 (0-AP、1-SC、2-AP+SC、3-AP+SC+WAC)

[配置]智能配置已同步!
[配置]配置文件已添加:SSID:ALHN-EA2E
[配置]配置文件确认:WLAN 已连接!
[配置]配置文件确认:IP 已获取!
[配置]配置文件确认成功!
[Provisioning] Provisioning Application 已成功结束

配置停止:当前角色:STA
WLAN 状态:已连接
已连接至 SSID:ALHN-EA2E
DHCP 已开启
IP 192.168.1.88
掩码255.255.255.0
GW 192.168.1.254
DNS 192.168.1.254
很棒!
Ping 完成。 成功率:100%

HandlePingComplete:PingCounter=1
很棒!
Ping 完成。 成功率:100%

HandlePingComplete:PingCounter=2
很棒!
Ping 完成。 成功率:100%

HandlePingComplete:PingCounter=3
很棒!
Ping 完成。 成功率:100%

HandlePingComplete:PingCounter=4
很棒!
Ping 完成。 成功率:100%

HandlePingComplete:已到达 OTA 命令
OtaInit:统计信息= 0、0、0
OtaInit:调用 Ota_init
OTA_init:sizeof CdnClient=576、sizeof OtaArchive=4956
OTA_init:sizeof OtaLib_t=7736、sizeof OTA_memBlock=7800
OTA_init:OTA 库版本= OTA_LIB_2.0.0.7
Archive_Init:OTA 存档版本= OTA_ARCHIVE_2.0.0.4
OtaConfig:调用 OTA_SET EXTLIB_OTA_SET_OPT_SERVER_INFO、ServerName=api.dropboxapi.com
OtaConfig:调用 OTA_SET EXTLIB_OTA_SET_OPT_VENDER_ID、VendorDir=OTA_CC3220SF
OTA_RUN:调用 Ccartn Client_Connect OTA server= api.dropboxapi.com
Client_Connect:Cquarti Client_Connect api.dropboxapi.com
[错误]-致命错误:检测到驱动程序中止。
Http Client_Connect:错误 sl_NetAppDnsGetHostByName、状态=-2005
Cdn301:Client_Connect 错误 Http Client_Connect,状态=-20301
OTA_run:错误 Cdnc301, Client_Connect 状态=-20301

_OtaCheckConsecectiveErrors:ConsecectiveOtaErrs=1/5、仅返回 WARNNING
OtaRunStep:警告 Ota_run、状态= 20006、下一次 OTA 重试继续

测试失败:状态= 6、事件= 17
事件处理程序失败..!


下面是我的分步配置设置。 请在任何步骤中查看是否有任何问题。

1.我设置了一个 Dropbox 帐户,并包含了一个开发应用(我获得了一个令牌);它看起来像这样。



   这里、我将使用生成的访问令牌作为$OTA\_VENER\_TOKEN$。 这一步是否正确? 如果没有、如何使用生成的访问令牌、应用密钥和应用密钥生成$OTA\_VENER\_TOK$?

2. 我的 Dropbox 帐户中有一个名为 Fleck_test_ota_1的文件夹,类似于我开发者帐户中的应用。 我在其中创建了一个名为 OTA_CC3220SF 的文件夹、用于与供应商目录相对应     

   在 otauser.h cloud_ota 示例中指定。 定义如下:#define OTA_VENTER_DIR "OTA_CC3220SF"

3.在 otauser.h 中、我定义了 OTA_VENTOR_TOKER (生成的访问令牌)我还在 otauser.h 和 cloud_ota.c 中定义了 SL_ENABLE_OTA_DEBUG_TRACES 和 DISABLE_OTA_SWITCH_TRIGGER、如中所述

   说明并编译 cloud_ota 工程

otauser.h



4.下面是我的 Uniflash 设置附件

              






5.我的.tar 文件已附加。 请检查是否有任何缺失。

e2e.ti.com/.../5482.20240310081436_5F00_CC3220SF_5F00_OTA.tar


我将关注此文档。

https://software-dl.ti.com/ecs/SIMPLELINK_CC3220_SDK/1_50_00_06/exports/docs/simplelink_mcu_sdk/Over_The_Air_Update_Guide pota.html#fig.-22:-ota-Apps-Diagram



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

    您好!
    今天有更新吗?

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

    您正在使用什么 SDK?

    如果您刚刚使用 OTA -请使用 sdk6或7中的 ota_if。 mqtt_client 示例中对此进行了演示和解释。

    请在 启用 SL_ENABLE_OTA_DEBUG_TRACES 的情况下(在 otauser.h 中)编译 OTA 库。

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

    您好!

    我们使用的是 simplelink_cc32xx_sdk_4_10_00_07。 抱歉、我们的项目处于最后阶段、因此我们无法切换到最新的 SDK 版本。 目前、我们正在使用此 SDK 上的云 OTA 示例代码。

    我们尝试了一些修改、例如由于最近通过参阅此 E2E 链接导致 Dropbox 访问令牌的长度发生了变化、因此将 MAX_VENTOR_TOKEN_SIZE 从96增加到160。

     CCS/CC3220SF:最近发生的 dropbox 访问令牌更改可能需要更新 TI OTA 功能。  

    并 通过参考以下 e2e 链接、修改 otauser.h 文件以定义两个证书、如下所示

    (+) CC3220SF:OTA 故障排除需要帮助- Wi-Fi 论坛- Wi-Fi - TI E2E 支持论坛

     #define OTA_SERVER_ROOT_CA_CERT        "digicerthighassulanceevrootca.crt "
     #define OTA_FILE_SERVER_ROOT_CA_CERT "DigiCertGlobalRootCA.crt"     

    上述步骤是否正确?
    我们遇到了另一个类似错误、


                     OTA 应用程序-版本0.10.00.03

     SimpleLinkInitCallback:始于角色0
    主机驱动程序版本:3.0.1.61
    内部版本3.15.0.1.31.2.0.0.2.2.0.7
    STA 连接到 AP Inthings、BSSID 为14:A7:2b:74:db:D1
    已获取 IPv4:IP = 192.168.1.10
    网关= 192.168.1.1
    很棒!
    Ping 完成。 成功率:100%

    HandlePingComplete:PingCounter=1
    很棒!
    Ping 完成。 成功率:100%

    HandlePingComplete:PingCounter=2
    很棒!
    Ping 完成。 成功率:100%

    HandlePingComplete:PingCounter=3
    很棒!
    Ping 完成。 成功率:100%  

    HandlePingComplete:PingCounter=4
    很棒!
    Ping 完成。 成功率:100%  

    HandlePingComplete:已到达 OTA 命令
    OtaInit:统计信息= 0、0、0
    OtaInit:调用 Ota_init
    OTA_init:sizeof CdnClient=576、sizeof OtaArchive=4956
    OTA_init:sizeof OtaLib_t=7800、sizeof OTA_memBlock=7800
    OTA_init:OTA 库版本= OTA_LIB_2.0.0.7
    Archive_Init:OTA 存档版本= OTA_ARCHIVE_2.0.0.4
    OtaConfig:调用 OTA_SET EXTLIB_OTA_SET_OPT_SERVER_INFO、ServerName=api.dropboxapi.com
    OtaConfig:调用 OTA_SET EXTLIB_OTA_SET_OPT_VENDER_ID、VendorDir=OTA_CC3220SF
    OTA_RUN:调用 Ccartn Client_Connect OTA server= api.dropboxapi.com
    Client_Connect:Cquarti Client_Connect api.dropboxapi.com
    Http Client_Connect:IP_ADDR=162.125.81.19
    SL_SOCKET_ASYNC_EVENT 套接字事件2、DO RESTART
    Http Client_Connect:错误套接字连接、状态=-688
    Cdnc2000:Client_Connect 错误 Http Client_Connect,状态=-20304
    OTA_run:错误 Ccclon沟 Client_Connect、状态=-20304  

    _OtaCheckConsecectiveErrors:ConsecectiveOtaErrs=1/5、仅返回 WARNNING
    OtaRunStep:警告 Ota_run、状态= 20006、下一次 OTA 重试继续

    ProcessRestartMCU:重置平台...

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

    -688表示连接使用了错误的根 CA (请参阅 CC32xx 证书处理指南中的"查找服务器的根 CA"第2.5.1章)。

    您执行的步骤似乎正确(假设新的根 ca 文件已编程到文件系统中)。

    OTA_IF (在 SDK 6.10/7.10中提供)简化了所有这些-并将此类更改留给了应用程序代码(而不是库)。

    请注意,目前我们在使用 Dropbox 时有另一个已知问题(即连接成功后进行第一次协商)。 它当前处于调试状态。 因此、您最好先测试 Github。 请记住、Github 和 Dropbox 仅供参考-我们建议您使用更可靠的云服务器进行物联网使用 (作为一种物联网设备、我们的资源有限、例如要保留多个证书、因此客户端必须提前知道服务器中的更改- Dropbox 和 Github 不会专注于此类设备、并且会频繁更新)。

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

    您好!
    我根据 cc32xx 证书处理指南修订了 cloudota.c 、并收到以下信息。

    Http Client_Connect:IP_ADDR=162.125.81.19
    SL_SOCKET_ASYNC_EVENT:错误-根 CA 错误
    请安装以下根证书:
    DigiCert 全局根 CA
    Http Client_Connect:错误套接字连接、状态=-688
    Cdnc2000:Client_Connect 错误 Http Client_Connect,状态=-20304
    OTA_run:错误 Ccclon沟 Client_Connect、状态=-20304

    _OtaCheckConsecectiveErrors:ConsecectiveOtaErrs=1/5、仅返回 WARNNING
    OtaRunStep:警告 Ota_run、状态= 20006、下一次 OTA 重试继续

    otauser.h




    您之前提到 Dropbox 和 GitHub 不可靠。 事实上,我们项目的云平台是 Azure IoT Blob Storage。 我能否通过定义#define OTA_SERVER_TYPE OTA_FILE_DOWNLOAD、将 OTA .tar 文件直接上载到 Azure IoT Blob Storage、创建 URL 并在 CloudOTA 示例代码中使用此 URL?

    您能否协助创建 ota.tar 文件并确定哪些证书用作 OTA_SERVER_ROOT_CA_CERT?

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

    关于第一个问题-答案是肯定的:使用  OTA_FILE_DOWNLOAD 并使用 OTA_SET (EXTLIB_OTA_SET_OPT_FILE_SERVER_URL...)设置 URL。

    对于 OTA_SERVER_ROOT_CA_CERT -如果 Azure 未提供信息-您可以使用相同的方法(即设置任何根 CA 并使用请求的证书查找错误代码)。

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

    您好!

    我们尝试了 OTA_FILE_DOWNLOAD 方法、方法是通过注释 OTA_SERVER_ROOT_CA_CERT 部分。 然后、在 CCS 调试模式下使用 CloudOTA、结果成功。 下面附加了日志。

    e2e.ti.com/.../OTA_5F00_TEST.txt


    通过 UniFlash 刷写的相同 CloudOTA bin 文件遇到一些签名解析错误。 下面附加了详细日志。

    e2e.ti.com/.../OTA_5F00_test_5F00_uniflash.txt

    Uniflash 设置:



    我的 OTA .tar 文件已上传到 Azure Blob
    e2e.ti.com/.../20240313123751_5F00_CC3220SF_5F00_OTA-.tar


    是否需要进行任何修改?

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

    我不解释您为什么评论 OTA_SERVER_ROOT_CA_CERT。

    如果 OTA_SERVER_TYPE = OTA_FILE_DOWNLOAD

     未定义 OTA_SERVER_ROOT_CA_CERT。

    您遇到的错误是图像签名错误。

    在构建安全 OTA 映像时、您需要使用私钥对其进行签名。

    在我们的示例中、它可与"tools\cc32xx_tools\ota-example-cert\dummy_OTA_vender_key.[der/pem]"一起使用。

    在这种情况下、文件系统中需要有"dummy_ota_vendor_cert.der"(用于验证)。

    如果您使用自己的证书对、并且证书写入其他路径或名称中、则应替换"ota_certificate_name"(在 OtaArchive.c 中)并重建 OTA 库。

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

    您好!

    感谢您的宝贵支持:)

    现在 OTA 成功、巴尔的摩信任根证书为 OTA_SERVER_ROOT_CA_CERT