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.

[参考译文] MSP432E401Y:SimpleLink MSP432E4 SDK:SHA2_finalize ()中存在错误

Guru**** 2394305 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/978407/msp432e401y-simplelink-msp432e4-sdk-bug-in-sha2_finalize

器件型号:MSP432E401Y

当再次读取地址0时,我发现 SHA2_final()中有一个错误。

我们正在开发在 FreeRTOS 上运行的应用程序。 以防止错误和潜在问题
攻击我们使用的是受限制任务(xTaskCreateRestricted())。 这些任务只能访问
它们自己的数据缓冲区和存储区0x0 -> 0x4000再次受到任何访问的保护。

可悲的是,文件 SOURCE \ti\drivers\SHA2\SHA2MSP432E4.c 中的函数 SHA2_finalth()
有错误。 此函数会解除对 SHA2_DATA 指针的引用、该指针是
设置为 NULL。 这会导致对受保护的存储器区域的访问并触发 MPU 异常。


调用堆栈如下所示:

1:SHA2_finalize ()将 SHA2_DATA 设置为 NULL。
2:SHA2_finalize 调用 SHA2_execAndWaitForFined()
3:SHA2_execAndWaitForFined()调用 SHA2_processData()
4:SHA2_processData()执行以下代码
      字 = (* SHA2_DATA)<<(字节 ToMergeFromBuffer * 8);
5:触发 MPU 异常(SHA2_DATA = NULL)


我已经通过将 SHA2_DATA 设置为可访问的存储器区域来解决该错误
所有任务。 但是、我认为正确的解决方法应该是在时跳过故障操作
操作为 SHA2_OperationType_Finalize。

如何提交一份但报告、以便下一个 SimpleLink SDK 不会出现此问题?