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:由于 PRCMHibernateCycleTrigger 而导致 OTA 失败、未触发重启

Guru**** 2535150 points
Other Parts Discussed in Thread: CC3220SF, CC3235SF

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1121959/cc3220sf-ota-failure-due-to-prcmhibernatecycletrigger-did-not-trigger-reboot

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

您好!

我们使用的是 AWS FreeRTOS、我们有一个定制硬件(CC3220SF)。 下载 OTA 以进入自检模式后、会调用重启以启动新映像。 OTA 代理会调用“prvPAL_ResetDevice -> MAP_PRCMHibernateCycleTrigger()”[TI SDK 函数]有时它会进入休眠模式而不是重启模式,并始终保持该模式,并且我们的 OTA 会失败。

 

  • MAP_PRCMHibernateCycleTrigger()休眠器件而不是重启的原因是什么。
  • 如何恢复这种情况? 是否有任何可重置设备的替代重引导功能?

我看到下面的主题中报告了类似的问题

 

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/919422/launchxl-cc3235sf-ota-sys-mcuflashimg-bin-with-sl_fs_write_bundle_file-doesn-t-take-effect/3400829#3400829

 

“复位在 CC3220SF 和 CC3235SF 上都无法可靠地工作”

 

 

器件

Amazon FreeRTOS -> 202002

FreeRTOS 内核 V10.3.0

FreeRTOS OTA V1.1.1

不适用

FreeRTOS MQTT v2.1.1

2.0.1.27.

sp_3.14.0.0_2.0.0.0_2.2.0.7.bin

sp_3.14.0.0_2.0.0.0_2.2.0.7.bin

V2_10_00_04

 

 

另请查看以下日志

 

896017 - 1503 222874 [OTA Agent T][prvPAL_CloseFile]验证和关闭文件。

896585 - 1504 22342[OTA Agent T][prvIngestDataBlock]文件接收完成且签名有效。

896594 - 1505 22343[OTA Agent T][prvStopRequestTimer]停止请求计时器。

896601 - 1506 22343[OTA Agent T][prvUpdateJobStatus_MQTT] Msg:{"Status":"in_Progress"、"statusDetails":{"self_test":"ready"、"updatedBy":"0x3020001"}

896613 - 1507 22344[OTA Agent T][INFO ][MQTT][22344](MQTT 连接20003ad0) MQTT 发布操作已排队。

896623 - 1508 223446 [OTA Agent T][信息][MQTT][22344](MQTT 连接20003ad0、发布操作20004200)等待操作完成。

896920 - 1509 223775 [OTA Agent T][INFO ][MQTT][223775](MQTT 连接20003ad0、发布操作20004200)等待完成并取得结果成功。

896934 - 1510 223777 [OTA Agent T][prvUpdateJobStatus_MQTT]"in_progress"更改为$aws/things/00003004Z/jobs/Adi_ff2def__a3341850-746d-4159-8dc5-de143ccca35b/update

896947 - 1511 223779 [OTA Agent T][INFO ][DEMO][223779][ADI_OTAU_Application]App_OTACompleteCallback:已接收到来自 OTA Agent 的 eOTA_JobEvent_Activate 回调。

896947 -

896961 - 1513 223781 [WIFI_MQTT][INFO ][DEMO][223781] OTAAppSelfTestDelay - OTAD: Waiting for File Block Received:284  Queued:0  Processed:0  Dapped:0 Dapped:0

896961 -

896975 - 1512 223779 [OTA Agent T][信息][MQTT][223779](MQTT 连接20003ad0)断开连接。

896984 - 1514 223782 [OTA Agent T][INFO ][MQTT][223782](MQTT 连接20003ad0、断开操作20003ef8)等待操作完成。

896996 - 1515 223782 [OTA Agent T][INFO ][MQTT][223782](MQTT 连接20003ad0、断开操作20003ef8)等待完成并获得结果成功。

897009 - 1516 223784 [OTA Agent T][INFO ][MQTT][223784](MQTT 连接20003ad0)连接已断开。

897018 - 1517 223784 [OTA Agent T][INFO ][MQTT][223784](MQTT 连接20003ad0)网络连接已关闭。

897027 - 1518 223877 [pthread][SimpleLinkSockEventHandler 事件]:意外事件:2、套接字:0原因:0。

897036 - 1519 223877 [NetRecv]错误:-452套接字接收失败。

897041 - 1520 223880 [OTA Agent T][INFO ][MQTT][223880](MQTT 连接20003ad0)网络连接已损坏。

897051 - 1521 223880 [OTA Agent T][INFO ][影子][223880]影子库清理完成。

897058 - 1522 223880 [OTA Agent T][INFO ][MQTT][223880] MQTT 库清理完成。

897064 - 1523 223884 [OTA Agent T][info ][init][223884] SDK 清理完成。

897070 - 1524 223888 [pthread][info ][demo][223888]器件根据应用程序的请求从 AP 断开

897070 -

897079 -

897354 - 1525 224210 [pthread][信息][演示][224210][WLAN 事件] STA 连接到 AP:IoT24、BSSID:18:64:72:5c:B2:4a

897354 -

897354 -

897365 - 1526 224211 [pthread][info ][demo][224211][NetApp 事件] IP 已获取:IP=172.26.253.153,Gateway=172.26.0.1

897365-

897365-

897375 - 1527 224211 [pthread][info ][demo][224211][调试] POST connectionEvent

897924 - 1528 224781 [WIFI_MQTT][INFO ][DEMO][224781] OTAAppSelfTestDelay - OTAD: Waiting for File Block Received:284  Queued:0  Processed  :0 Dapped:0 Dapped:0

897924 -

898430 - 1529 225287 [OTA Agent T][prvPAL_ActivateNewImage]激活新的 MCU 映像。

898438 - 1530 225287 [OTA Agent T][prvPAL_ResetDevice]停止 Simplelink 并重置器件。

898446 - 1531 225287 [OTA Agent T][INFO ][DEMO][225287][Watchdog]停止已启动。

898453 - 1532 225287 [OTA Agent T][INFO ][DEMO][225287][Watchdog] Stop completed (OTA 代理 T)。

898924 - 225781 [WIFI_MQTT][INFO ][DEMO][225781] OTAPSelfQueued TestDelay - OTAP: Waiting for File Block Received:1533 Que284  :0  Processed:0  Dapped:0 Dapped:0

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

    请检查 以下主题中的建议:

    https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1090437/launchxl-cc3235sf-aws_demo-freertos-ota-update-getting-issue-related-to-sf-image-is-getting-rolled-back-itself/4059451?tisearch=e2e-sitesearch&keymatch=freertos%2520ota%2520cc3235#4059451

    CC3235SF 的 MCU 映像的构建方式与 AWS 文档中的 CC3220不同(前缀应为 SHA256 digest、而不是 SHA1)、签名也是如此(应基于 SHA256而不是 SHA1)。

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

    您好、Kobi、  

    感谢您的快速回答、我不理解上述帖子、我觉得 问题 与我所面临的问题不同、我只想澄清下面的一些问题  

    我们不使用  CC3235SF、而是使用 CC3220SF 定制 板。

    我们的 OTA 在20次尝试中可以正常工作15次、但失败5次、正如我们看到 的 MAP_PRCMHibernateCyclepTrigger ()[TI SDK 功能]有时会进入休眠模式而不是重启 、并始终保持该模式。

     在下载 OTA 二进制文件和签名 验证成功后(启动新下载 的映像),调用 MAP_PRCMHibernateCycletrigger()以重新启动。   

    问题:  

    我不明白 SHA1和 MAP_PRCMHibernateCycletrigger()之间的关系在某些时候没有复位。  

    如果摘要中有一个问题导致 MAP_PRCMHibernateCycleTrigger()无法复位, 那么它不应在每次复位20次中的5次失败时起作用。   

    请告诉我这方面的解决方案。  

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

    请尝试 在  MAP_PRCMHibernateCycleTrigger()之前调用 Hwi_disable()。 实现中存在一个需要原子执行的错误。

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

    您好、Kobi、

    感谢您的响应,您希望我们 通过在  MAP_PRCMHibernateCycletrigger()之前调用 Hwip_disable()函数来禁用中断?

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

    是的