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.

[参考译文] CC3235MODSF:PRCMMCUReset 会在 OTA 后停止 CPU

Guru**** 2558250 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1005034/cc3235modsf-prcmmcureset-halts-cpu-after-ota

器件型号:CC3235MODSF

执行 OTA 下载后、我将获取 OTA state=archive_State_Complete_pending_testing

    ota_fetch_update(...);

    UART_PRINT("OTA exited... sl_Stop\r\n");
    sl_Stop(2000);

    UART_PRINT("OTA exited... rebooting.. \r\n");
    PRCMMCUReset(true);

这将产生以下 UART 输出:

[OTA]状态 archive_State_complete_pending_testing
[OTA]完成代码=6
[OTA]成功。
OTA 已退出... sl_Stop
OTA 已退出... REB

之后、ECU 似乎卡在某个状态、只能通过物理复位线路进行复位。 调试器已断开连接。 (在启动另一个调试会话时、我最终会进入 FAULTISR)。
有时、我会在 SimpleLinkFatalErrorEventHandler 回调中获得额外的"sl_device_event_fated_CMD_timeout"错误代码。

我认为 PRCMMCUReset 用于复位 CPU?  
如何执行良好的旧传统软件复位?

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

    很抱歉、我的错误是将错误合并到分支中、缺少 periph 时钟初始化、并在   使用 OTA 部署新的二进制文件时导致立即无访问故障、这似乎导致复位函数导致此问题。

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

    尊敬的用户6378938:

    很高兴您能找到它。

    BR、