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.

[参考译文] CC3235SF:当 MCU 进入冻结状态时、观察到 SL_DEVICE_EVENT_FATUAL_SYNC_LOSS 错误

Guru**** 2644125 points

Other Parts Discussed in Thread: CC3235SF

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1582083/cc3235sf-observed-sl_device_event_fatal_sync_loss-error-when-mcu-entered-freeze

器件型号:CC3235SF


您好、
我正在使用 CC3235SF 和 simplelink SDK 版本 6.10。
我的 MCU 进入冻结状态、我注意到发生了 SL_DEVICE_EVENT_FATAL_SYNC_LOSS 事件。 如果发生此错误、我会在之后调用 sl_stop 和 sl_start。
当时、我使用 CryptoCC32XX_AES_ECB 加密方法执行加密数据传输。

出现此错误的原因是什么? 如何防止 MCU 挂起?

void SimpleLinkFatalErrorEventHandler (SlDevicefatal_t *slFatalErrorEvent)

  交换机 (slFatalErrorEvent->ID)
  {
    用例 SL_DEVICE_EVENT_FATUAL_DEVICE_ABORT:
    {
      UART_print(“SL_DEVICE_EVENT_FALATAL_DEVICE_ABORT \n“);
      sl_Stop (SL_STOP_TIMEOUT);
      vTaskDelay (50);
      sl_Start (NULL、NULL、NULL);
    }
    休息;

    用例 SL_DEVICE_EVENT_FATUAL_DRIVER_ABORT:
    {
        RestartDevice (1000);
    }
    休息;

    用例 SL_DEVICE_EVENT_FATUAL_NO_CMD_ACK:
    {
      UART_print(“SL_DEVICE_EVENT_FALATAL_NO_CMD_ACK \n“);
      sl_Stop (SL_STOP_TIMEOUT);
      vTaskDelay (50);  
      sl_Start (NULL、NULL、NULL);
    }
    休息;

    用例 SL_DEVICE_EVENT_FATUAL_SYNC_LOSS:
    {
      UART_print(“SL_DEVICE_EVENT_FALATAL_SYNC_LOSS \n“);
      sl_Stop (SL_STOP_TIMEOUT);
      vTaskDelay (50);  
      sl_Start (NULL、NULL、NULL);
    }
    休息;

    如果 SL_DEVICE_EVENT_FATUAL_CMD_TIMEOUT:
    {
      UART_print(“SL_DEVICE_EVENT_FALATAL_CMD_TIMEOUT \n“);
      sl_Stop (SL_STOP_TIMEOUT);
      vTaskDelay (50);
      sl_Start (NULL、NULL、NULL);
    }
    休息;

    默认值:
    {
      uart_print(“未知致命错误:%d\n\r“、slFatalErrorEvent->ID);
      sl_Stop (SL_STOP_TIMEOUT);
      vTaskDelay (50);
      sl_Start (NULL、NULL、NULL);
    }
    休息;
  }

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

    您好、KS:

    可以看到这个。 感谢您的耐心。

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

    您好、KS:

    您能提供所做工作的大致流程吗? 您如何使用加密方法? 从启动到数据加密、您在做什么?

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

    您好、

    上电后、我将创建 sl_task、并执行另一个任务、我将在其中执行所有这些过程。


    1.我将启动与服务器的套接字连接。

    然后使用  CryptoCC32XX_AES_ECB 加密方法对数据进行加密、并使用 sl_send 将数据发送到服务器。
    3.解密并检查收到的数据。
    加密和解密功能

    void EncryptData(无符号字符*inputBuf、char *outputBuf、const char *encryptionKey)

    int32_t =–1;

    aesCCMParams.AES.pkey =(const uint8_t*)(encryptionKey);
    解密参数= aesCCMParams;
    size_t padded_len = 0;
    size_t encryptedDataLength = 0;
    size_t decryptedDataLength = 0;

    PKCS7_PAD (inputBuf、strlen (inputBuf)、&fadded_len);


    RetVal = CryptoCC32XX_encrypt (cryptoHandle1、method、inputBuf、
    strlen (inputBuf)、outputBuf、
    &encryptedDataLength、&aesCCMParams);

    if (retval = 0)

    (void) CryptoCC32XX_Decrypt (cryptoHandle1、method、outputBuf、
    strlen (outputBuf)、&checkBuf、
    解密数据长度、&decryptParams);
    }
    暴露

    hStatus =失败;
    }
    }

    char* DecryptData (const char *inputBuf、const char *encryptionKey)

    size_t 已解密 DataLength;

    decryptParams.des.pKey =(const uint8_t*)(encryptionKey);
    (void) memset (&outputDecryptData、0、sizeof (outputDecryptData);
    (void) CryptoCC32XX_DECRYPT (cryptoHandle1、method、inputBuf、strlen (inputBuf)、&outputDecryptData[0]、
    解密数据长度、&decryptParams);
    返回 outputDecryptData;
    }

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

    您好、

    只是一个简短的评论。 是否确定可以使用 strlen ()? 加密的数据以 null 结尾的字符串吗? 如果在调用 DecryptData () 之前加密数据的内部是 0x00、会发生什么情况? 以及如何 在加密时将 PKCS7 填充与以空结尾的字符串进行交互?

    1 月

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

    您好、KS。 谢谢。 您注意到了该错误的哪个步骤? 是在加密过程中还是实际传输过程中?