闪存完整性测试(SM1.FLASH.AI_SELFCHECK)我目前正在努力启用闪存功能安全机制(SM1.FLASH.AI_SELFCHECK),并且对实现有一些疑问。
我在 c40_ip 驱动程序中找到了两个相关的 API:C40_Ip_ArrayIntegrityCheck 和 Fls_IPW_CheckUserTestStatus。
1.如果 C40_Ip_ArrayIntegrityCheck 启动闪存完整性测试并返回测试状态(真或假),那么 Fls_IPW_CheckUserTestStatus API 的具体用途是什么?
2.我知道在进行闪存完整性测试之前,需要将代码从闪存复制到 SRAM。能否就如何实施提供指导?链接器脚本需要做哪些具体修改?
3.在最新的 AUTOSAR 标准中,使用了 mem40_Infls 模块。以前的 AUTOSAR 版本包括 fls 模块,它为用户测试模式提供了配置选项。如何使用最新的 AUTOSAR 版本实现用户测试功能?
感谢您对这些问题的帮助。
Re: Flash Integrity test (SM1.FLASH.AI_SELFCHECK)嗨,丹尼尔,
,我使用的是 RTD 3.0.0。您提到的最新 RTD 中可能包含上述 api。我会检查的。
如果您能提供数组完整性检查的示例代码,将对我们更有帮助。
Regards
Sandeep SinghRe: Flash Integrity test (SM1.FLASH.AI_SELFCHECK)你好,我是@sandeepSingh18606、
您使用的是哪个版本的 RTD?
1.
我认为这与 Mem_43_INFLS (S32K3xx RTD 6.0.0)中的当前实现非常相似。
Mem_43_INFLS_ArrayIntegrityCheck()
Mem_43_INFLS_GetJobUtestState()
C40_Ip_ArrayIntegrityCheck()
C40_Ip_CheckUserTestStatus()
请参阅 RTD_MEM_43_INFLS_UM.pdf(位于 RTD 安装文件夹中)。
3.6.4.3 驱动程序硬件实用程序测试模式服务
此外,还有如何使用应用程序接口的示例。
2.
让我检查一下。
3.
请参阅上述《用户手册》。
此致,
丹尼尔
Re: Flash Integrity test (SM1.FLASH.AI_SELFCHECK)你好,我是@sandeepSingh18606、
现附上使用 RTD 3.0.0 创建的示例P07.
我们没有其他参考项目。
此致,
丹尼尔
Re: Flash Integrity test (SM1.FLASH.AI_SELFCHECK)嗨,丹尼尔,
关于上述主题是否有任何更新?
致敬
桑迪普-辛格
Re: Flash Integrity test (SM1.FLASH.AI_SELFCHECK)嗨,丹尼尔
感谢您提供示例代码。
我已经测试了代码,虽然它偶尔会起作用,但它主要是进入总线故障处理程序。检查 CPU 寄存器后,CFSR 显示指令位错误。
我怀疑在启动阵列完整性检查之前,需要将代码移到 SRAM 中。
请告知正确的执行程序。
顺祝商祺!
桑迪普-辛格
Re: Flash Integrity test (SM1.FLASH.AI_SELFCHECK)你好,我是@sandeepSingh18606、
很抱歉延迟回复--我现在不在办公室。
你是对的;它应该从 SRAM 运行。
我还没有发现任何基于闪存的示例包含从 SRAM 运行的完整性检查。我还联系了 C40_Ip 驱动程序的所有者,询问他们是如何验证这一点的,得到的答复是整个测试项目都是通过 SRAM 执行的。
您可以将 C40_Ip_ArrayIntegrityCheck()、C40_Ip_CheckUserTestStatus() 和您的封装函数放在 SRAM 中,类似于下面示例中的做法。目前,我还不能完全确定是否有其他功能也需要转移到 SRAM 中。
https://community.nxp.com/t5/S32K-Knowledge-Base/S32K312-C40-Ip-SRAM-RTD-500-DS35/ta-p/2074245
此致,
丹尼尔
Re: Flash Integrity test (SM1.FLASH.AI_SELFCHECK)嗨,丹尼尔
谢谢您的建议。
我尝试使用所提供的示例代码从 SRAM 执行数组完整性检查功能。但是,该应用程序当前正在触发硬故障错误。我怀疑可能需要更新链接器文件才能支持这种实现方式。
Re: Flash Integrity test (SM1.FLASH.AI_SELFCHECK)嗨,丹尼尔
非常感谢你们的支持。我的链接器脚本出了问题,现在我已经更新了。我这边一切正常。
我接受的上述示例解决方案对我来说是可行的,包括从 SRAM 运行示例代码。
顺祝商祺!
桑迪普-辛格