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.

[参考译文] CC1352P:AESGCM_oneStepDecrypt 和 AESGCM_oneStepEncrypt 进入无限循环

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1401530/cc1352p-aesgcm_onestepdecrypt-and-aesgcm_onestepencrypt-enters-to-an-endless-loop

器件型号:CC1352P

工具与软件:

器件: CC1352P1F3

SDK:simplelink_cc13x2_26x2_SDK_3_40_00_02

我们看到、有时当 MCU 调用 AESGCM_oneStepDecrypt 或 AESGCM_oneStepEncrypt 时、CPU 会进入无限循环、直到硬件 WDG 位于 MCU。

在良好的流程中、我们看到了以下内容:

1. MCU 调用  AESGCM_oneStepDecrypt 或 AESGCM_oneStepEncrypt

2.  TI 驱动程序调用 AESGCM_startOperation

3.此函数到达最后一行、即  AESGCM_waitForResult  

4. 调用 AESGCM_hwiFxn (object->operationInProgress WAS) 调用时)

5. AESGCM_hwiFxn 发布信号量、以便调用加密 API 退出阻止模式并运行的任务

在糟糕的情形中、我们看到了以下内容:

1. MCU 调用  AESGCM_oneStepDecrypt 或 AESGCM_oneStepEncrypt

2. TI 驱动程序调用 AESGCM_startOperation

3.这个函数到达此行 AESStartDMAOperation(operation->aad, operation->aadlength, NULL, 0 );

4. 调用 AESGCM_hwiFxn (object->operationInProgress WAS) 调用时)

5. AESGCM_startOperation 在 AESGCM_hwiFxn 完成后继续、 并到达 AESGCM_waitForResult 行、进入无限循环而不释放 CPU。 此函数定义为 ROM_AESWaitForIRQFlags。

可以在汇编中看到、这是到同一地址0x1002'fa10的无限循环

  

 

我们认为原因是 AESGCM_hwiFxn 清除 IRQ 标志

AESIntClear (AES_RESULT_RDY | AES_DMA_IN_DONE | AES_DMA_BUS_ERR);

同时 AESWaitForIRQFlags 等待 IRQ 标志

AESWaitForIRQFlags (AES_DMA_IN_DONE | AES_DMA_BUS_ERR);  

我们不知道是什么导致了这个错误流。

 

我们需要帮助来了解我们所做的错误是否会导致 TI 驱动程序中出现此不良流程。

或者这是 TI 新 SDK 上已修复的错误吗?

或别的什么东西吗?

 提前感谢。