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.

[参考译文] CC3220SF-LAUNCHXL:云 OTA 更新 JSON 问题

Guru**** 2568565 points
Other Parts Discussed in Thread: CC3220SF

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/913163/cc3220sf-launchxl-cloud-ota-update-json-problem

器件型号:CC3220SF-LAUNCHXL
主题中讨论的其他器件:CC3220SF

大家好、我需要帮助、因为我已经堆叠了。

一些史前的……

我从 simplelink SDK 中获取 cloud_ota_cc3220sf 示例进行设置、以便与 GitHub CDN 配合使用。 并且始终工作正常。 在为应用添加了几个 POSIX 线程后、还从 MQTT_CLIENT_cc3220sf 示例添加了 MQTT 线程。 有一次、我看到 OTA 更新会崩溃。 我进行了一些研究、发现如果我评论("//")任何一个线程、则 OTA 更新有效。 如果我再次启动 OTA 更新之外的新线程。 我可以理解、JSON 解析函数会发生一些故障。 我尝试在 otaJson.h 中增加缓冲区和名称数组、但没有改变。

下面我显示了 OTA 调试日志、例如、一切正常以及更新崩溃时。 由于我可以检查此日志的不同之处、当应用程序在坏情况下获得 pRespBuf 时、它不像在好情况下那样完整。

因此、我需要帮助、以了解添加新 POSIX 线程 OTA 崩溃的原因。

良好的 OTA Github 更新日志:

HandleOTA PingComplete:OTA 命令到达
OtaInit:statistics = 0、0、0
OtaInit:调用 Ota_init
ota_init:sizeof COTA Client=576、sizeof Ota Archive=4956
ota_init:sizeof OtaLib_tina_t=7736、sizeof OTA _memBlock=7800
OTA Client=7800、sizeof OOTA Client=verta_connectore_port_connectore_port_port_port=2.0.4ota_port_connota_port_port_connector_port_port_port_port_port_connector_port_port_port_conn=

api.github.com

api.github.com:v_connota_port_port_connota_port_port_connector_port_port_port_port_port_port_port_port_port_port_connector_connId=2.0.4ota_port_connot_port_connot_connot_port_port_connot_
HttpClient_Connect api.github.com
HttpClient_Connect:IP_ADDR=140.82.118.6
HttpClient_Connect:警告套接字连接、STATUS=-468、忽略...
OTA_run:CdnClient_ReqOtaDir、VdnendorDir=OTA_CC3220SF
CdnGithub_SendReqDir:UI=/repos/allovaro/Nixie_updates/contents

github.com/.../20200606001355_CC3220SF_Nixie_Clock.tar

raw.githubusercontent.com/.../20200606001355_CC3220SF_Nixie_Clock.tar、len 是:837 after recvAppend pRespff:pdates/contents/ota_CC3220SF/20601355_CC3220SF_NiPf:"206620564f
:"api.github.com/.../20200606001355_CC3220SF_Nixie_Clock.tar、nat_rum_6460f:"ctaUrl"、nat_64206460f:"ctaUrl"、nat_un_q362064f:"http:"ctaUrl"、nat_r.cn"、"ctaUrl"、"ctaUrl"、"ctaUrl"、"2064206420642064205640f、"ctaUrl"、"http:cn"、"http://nat_cn"、"ctaUrl"、"ctaUrl"、"ctaUrl"、"ctaUrl"、"ctaUrl"、"cti20

raw.githubusercontent.com/.../20200606001355_CC3220SF_Nixie_Clock.tar

OtaArchive_CheckVersion:当前版本 str = 20200602223736
OtaArchive_CheckVersion:新 版本 str = 20200606001355
OtaArchive_CheckVersion:更新版本- 20200606001355
OtaRunStep:来自 Ota_run 的状态:ota_run_status_check_newer_version,接受并继续
OtaRunStep:CurrentVersion=20200602223736,NewVersion=20200606001355,开始下载...
OTA_RUN:调用 CdnClient_ReqFileUrl、fileName = raw.githubusercontent.com/.../20200606001355_CC3220SF_Nixie_Clock.tar
OTA_RUN:调用 CdnClient_ConnectFileServer、URL = raw.githubusercontent.com/.../20200606001355_CC3220SF_Nixie_Clock.tar
HttpClient_Connect:IP_ADDR=151.101.36.133
HttpClient_Connect:警告套接字连接、status=-468、已忽略...
OTA_RUN:调用 CdnClient_ReqFileContent、URL = raw.githubusercontent.com/.../20200606001355_CC3220SF_Nixie_Clock.tar
OtaArchive_RunParse:设置 state=archive_State_parse_HDR
OtaArchive_RunParseTar:解析存档文件头
OtaArchive_RunParseTar:filetype=5、directory=20200606001355_CC3220SF_Runparse/Nifore_Sfoclifor_Ot3220TS_RUNTS20TS_CLUSTRSF_CLUSTRSF_CLUSTRUSTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUART2055_TRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRUTRU






和 OTA 更新

HandleOTA PingComplete:OTA 命令到达
OtaInit:statistics = 0、0、0
OtaInit:调用 Ota_init
ota_init:sizeof COTA Client=576、sizeof Ota Archive=4956
ota_init:sizeof OtaLib_tina_t=7736、sizeof OTA _memBlock=7800
OTA Client=7800、sizeof OOTA Client=verta_connectore_port_connectore_port_port_port=2.0.4ota_port_connota_port_port_connector_port_port_port_port_port_connector_port_port_port_conn=

api.github.com

api.github.com:v_connota_port_port_connota_port_port_connector_port_port_port_port_port_port_port_port_port_port_connector_connId=2.0.4ota_port_connot_port_connot_connot_port_port_connot_
HttpClient_Connect api.github.com
HttpClient_Connect:IP_ADDR=140.82.118.5
HttpClient_Connect:警告套接字连接、STATUS=-468、忽略...
OTA_RUN:CdnClient_ReqOtaDir,VdnendorDir=OTA_CC3220SF
CdnShutub_SendReqDir:UI=/repos/allovaro/Nixie_updates/contents
,len:838
could not reunreassigned memory
after recvAppend pinit Buf:updates/contents/ota_CC3220SF/20SF/20601355_CC3220SF_766460f
api.github.com/.../20200606001355_CC3220SF_Nixie_Clock.tar
:"CC3620Sf_rend_rf:github.com/.../20200606001355_CC3220SF_Nixie_Clock.tar","type":"file","_links":{"self"Could,"ta_rultrab_6064606460f:"



警告 Ota_run、Status=20004、继续进行下一次 OTA 重试

OTA_RUN:调用 CdnClient_ConnectServer OTA server=api.github.com
CdnClient_ConnectServer:HttpClient_Connect api.github.com
HttpClient_Connect:IP_ADDR=140.82.118.5
HttpClient_Connect:警告 Socket Connect、status=-468、已忽略...
OTA_RUN:CdnClient_ReqOtaDir,VdnendorDir=OTA_CC3220SF
CdnGithub_SendReqDir:UI=/repos/allovaro/Nixie_updates/contents
,Len:767
无法在
recvAppend pCheckBuf 之后重新分配内存:Ef=master","html_URL":"github.com/.../OTA_CC32Could 不能重新分配整个
JSON p600206455" ,"CC36206460f:api.github.com/.../20200606001355_CC3220SF_Nixie_Clock.tar




警告 Ota_run、Status=20004、继续进行下一次 OTA 重试

OTA_RUN:调用 CdnClient_ConnectServer OTA server=api.github.com
CdnClient_ConnectServer:HttpClient_Connect api.github.com
HttpClient_Connect:IP_ADDR=140.82.118.5
HttpClient_Connect:警告 Socket Connect、status=-468、已忽略...
OTA_RUN:CdnClient_ReqOtaDir,VdnendorDir=OTA_CC3220SF
CdnGithub_SendReqDir:UI=/repos/allovaro/Nixie_updates/contents
,Len:767
无法在
recvAppend pCheckBuf 之后重新分配内存:Ef=master","html_URL":"github.com/.../OTA_CC32Could 不能重新分配整个
JSON p600206455" ,"CC36206460f:api.github.com/.../20200606001355_CC3220SF_Nixie_Clock.tar




警告 Ota_run、Status=20004、继续进行下一次 OTA 重试 

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

    您好、Kirill、

    请给我一些时间来消化这些信息、我会再回来的。

    Jesu

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

    谢谢、我会等。
    这是否取决于堆栈大小? 我运行了 ROV 对象视图,并在 OtaRunStep()函数中的断点处停止了程序  

    案例 OTA_RUN_STATUS_CONTINUE_WARNING_FAILED_REQ_OTA_DIR: 

    但堆栈和堆大小不到50%  

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

    您好、Kirill、

    感谢您的耐心等待。 如果我理解正确、OTA 会在您向应用程序添加了一些任务后开始崩溃、对吧? 请确认。 如果是这种情况、则可能表示存在内存或调度问题。 此外、当您说"OTA 崩溃"时、您意味着它刚刚发生故障、或者您是否遇到某种会中断应用程序的故障?

    我看到您已经在使用 ROV、我将建议使用该 ROV。 您是否在任务窗口中尝试过使用 callstack 视图? 这将为您提供有关发生故障之前每个任务中执行的操作的更多详细信息。 ROV 中还有一些附加视图、这些视图将为您提供堆和堆栈内存使用情况的图形视图。 下面是如何找到它的屏幕截图。 确保导入视图、然后必须单独打开它们。  

    希望这能让您更深入地了解问题的原因。

    Jesu

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

    感谢您的回复、以及有关查看"附加视图"的建议、在完成一些工作后、我发现增加堆大小解决了我的问题。 现在 OTA 更新工作正常。

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

    您好、Kirill、

    很高兴我的建议能帮助您解决问题。 我将关闭该线程。 如果您有一个新问题、请创建一个新主题。

    Jesu