器件型号: CC3235SF
您好、
当我尝试使用 CryptoCC32XX_encrypt 进行加密时、在该函数内部会调用目录 (ti/drivers/crypto/CryptoCC32XX.c>中的 CryptoCC32XX_aesProcess 函数
int32_t CryptoCC32XX_aesProcess (uint32_t cryptoMode、
uint32_t cryptoDirection、
uint8_t *pInBuff、
uint16_t inLen、
uint8_t *pOutBuff、
CryptoCC32XX_EncryptParams *pParams)
{
int32_t 计数= CryptoCC32XX_Context_ready_MAX_COUNTER;
/*清除标记。 */
G_bAESReadyFlag = false;
/*启用所有中断。 */
MAP_AESIntEnable (AES_BASE、AES_INT_CONTENT_IN | AES_INT_CONTENT_OUT | AES_INT_DATA_IN | AES_INT_DATA_OUT);
/*等待 context in flag、该标志将在中断处理程序中设置。 */
while ((!g_bAESReadyFlag)&&(count > 0))
{
计数--;
}
如果(计数= 0)
{
返回 CryptoCC32XX_STATUS_ERROR;
}
}
有时、这会返回加密 CryptoCC32XX_STATUS_ERROR、因为 g_bAESReadyFlag 不明确。
我甚至尝试了
MAP_AESIntDisable (AES_BASE、AES_INT_CONTENT_IN | AES_INT_CONTENT_OUT | AES_INT_DATA_IN | AES_INT_DATA_OUT);
MAP_AESIntClear (AES_BASE、AES_INT_CONTENT_IN | AES_INT_CONTENT_OUT |
AES_INT_DATA_IN | AES_INT_DATA_OUT);
如果加密失败、解决方法是什么? 这种情况是随机发生的、即使加密工作很长时间也是如此。