当再次读取地址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 不会出现此问题?