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:swru455m - 3.14 错误 — 表 3-5。 常见异步错误事件

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1614321/cc3220sf-swru455m---3-14-errors---table-3-5-common-asynchronous-error-events

器件型号: CC3220SF

你好!

我需要在 swru455m、Chater 3.14 错误中提供仔细检查信息。  

我们在第 3.14 章中的表 3-5 中发现了文档 swru455m 中的错误、我们将在以下情况下重新启动设备:

image.png
对我来说、这是一种在`SL_device_event_fatal_driver_abort`的情况下、我们必须重新启动器件的新信息。 因此、我想与大家核实、这只是有必要的情况。

`SΔ V L_DEVICE_EVENT_ERROR`-是否有任何建议的自愈机制?

感谢您的帮助!

Jiří μ s

PS:我确实查看了最新的 SDK 示例,错误只记录在那里,没有重新启动,没有建议重新启动的备注。

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

    您好、

    除一般错误之外的所有错误都表示有问题。

    当内部 NWP 崩溃时、SL_DEVICE_EVENT_FATUAL_DEVICE_ABORT 会反映 该函数。

    驱动器内部错误通常表示主机和 NWP 之间的同步丢失。 这些资源包括以下来源

    • SL_DEVICE_EVENT_FATUAL_DRIVER_ABORT
    • SL_DEVICE_EVENT_FATUAL_SYNC_LOSS
    • SL_DEVICE_EVENT_FATUAL_NO_CMD_ACK
    • SL_DEVICE_EVENT_FATUAL_CMD_TIMEOUT

    一般错误事件不是内部事件、而是从 NWP 触发。

    这实际上取决于此事件中接收到的参数、但它通常不具有破坏性并指示警告。

    例如、它可能指示重复的 IP 地址、在文件系统中打开文件时出现问题等

    此致、

    Shlomi

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

    您好、Schlomi!

    让我通过提供一个代码来清楚地说明。 我需要你的评论。

    /*****************************************************************************
     TI Callback Functions
     *****************************************************************************/
    
    void SimpleLinkFatalErrorEventHandler(SlDeviceFatal_t* sl_fatal_error_event) {
      LOG_DEFINE(debug, DEBUG_WIFI, "Simplelink: SimpleLinkFatalErrorEventHandler");
    
      if (sl_fatal_error_event != NULL) {
        LOG_ERROR("Error Id : %u", sl_fatal_error_event->Id);
        LOG_ERROR("Assert Code: %u", sl_fatal_error_event->Data.DeviceAssert.Code);
        LOG_ERROR("Assert Value: %u", sl_fatal_error_event->Data.DeviceAssert.Value);
        LOG_ERROR("NoCmdAck Code: %u", sl_fatal_error_event->Data.NoCmdAck.Code);
        LOG_ERROR("CmdTimeout Code: %u", sl_fatal_error_event->Data.CmdTimeout.Code);
    
        if ((sl_fatal_error_event->Id == SL_DEVICE_EVENT_FATAL_DEVICE_ABORT)        
            || (sl_fatal_error_event->Id == SL_DEVICE_EVENT_FATAL_NO_CMD_ACK)
            || (sl_fatal_error_event->Id == SL_DEVICE_EVENT_FATAL_SYNC_LOSS)
            || (sl_fatal_error_event->Id == SL_DEVICE_EVENT_FATAL_CMD_TIMEOUT)) {
          /*
           * When fatal error occurs you have to signal a task to restart NWP:
           * e2e.ti.com/.../cc3220sf-system-hangs-after-simplelinkfatalerroreventhandler
           */
          notification_send(eSimpleLinkDeviceNotificationTriggerRestart, NULL, &sl_notifications_list);
          return;
        } else if (sl_fatal_error_event->Id == SL_DEVICE_EVENT_FATAL_DRIVER_ABORT) {
          LOG_ERROR("Fatal Driver Abort - Restarting MCU");
          ASSERT_ALWAYS();
          schedule_reboot();
        }
      }
    
      LOG_ERROR("Unknown sl_fatal_error_event");
      ASSERT_ALWAYS();
    }


    如何处理 SL_DEVICE_EVENT_ERROR? 重新启动 MCU 或仅使用 NWP?

    感谢您的进一步帮助!

    Jiří μ s

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

    您好、

    正如我提到的,不像其他的决定性的错误,一般错误可以从许多来源触发,并不总是表明崩溃(有时只提供信息)。

    然而、在安全方面、我建议重新启动 NWP(MCU 与此错误无关)。

    此致、

    Shlomi

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

    感谢你的帮助。 我仍然不知道如何处理 SL_DEVICE_EVENT_FATUAL_DRIVER_ABORT 情况。 您尚未明确回复此部件。

    Jiří μ s

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

    您好、

     SL_DEVICE_EVENT_ERROR 和  SL_DEVICE_EVENT_FATUAL_DEVICE_ABORT - NWP 重新启动

    所有其余部分、因为它也来自在 MCU 端运行的驱动程序、所以完全重新启动平台。

    此致、

    Shlomi

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

    感谢您提供清晰的答案。

    可能值得更新文档 SWRU455m。

    此致

    Jiří μ s

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

    对我来说、  表 3-5 中 www.ti.com/.../swru455m.pdf 中所述的内容似乎与我在简单链接库中看到的内容相匹配

    所以、您说该表中的注释是错误的?

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

    您好、

    什么是器件复位或平台复位并不是太清楚。

    我将其称为完全 SoC 重新启动 (NWP + MCU) 和 NWP 复位。

    从代码角度来看、好像只有较低层崩溃时、才需要 NWP 复位、与 M4 应用处理器无关。 这是我在上面强调的两种情况。 其余组件要安全起见、需要完全复位 SoC、因为在应用处理器上运行的主机驱动程序可能与 NWP 不同步、因此需要复位。

    此致、

    Shlomi