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.
Hi,执行 SRAM 诊断时、调用以下安全诊断库的接口 sl_SelfTest_SRAM (SRAM_PAR_ADDR_CTRL_self_test、true、&failInfoTCMRAM)、并启用中断_enable_interrupt_()、
当程序执行到下面红色框中的语句时、程序会进入异常中断。 这可能是什么原因?
输入下面标识的异常中断代码
希望提供答案、谢谢。
您可以在执行此自检之前禁用中断吗?
disable_interrupt_()
如果禁用、则中断正常。
,,当我设置 SRAM 1位 ECC 故障注入时、还有另一个问题、如下面的代码所示、但 变量 SRAM_1bit_propof _faultJject_callback 始终为 F相 位。
但是 变量 SRAM_1bit_propof _faultinject_callback 在 ESM_ApplicationCallback()函数。中设置为 true
此 ESM_ApplicationCallback()函数由程序_expt_vec_abort_data()调用,中断程序也在 HALCOGEN 软件中启用,如下图所示,但我添加了打印信息,发现没有发生中断。 原因是什么? 是否有其他设置?
非常感谢。
注意到您的 HalCoGen GUI 中的项目被混乱。 您可以 通过在 Windows 设置中将字体大小更改为100%来更正它们:
您是否在 文件 中声明了 SRAM_1bit_profile_faultject_callback:extern 布尔 SRAM_1bit_profile_faultject_callback;
您需要启用 ESM 中断:
然后启用 ESM 通道26/28
并通过调用_enable_IRQ ()启用 IRQ;
非常感谢,我的问题已经解决了。
SRAM 的其他诊断,当我调用函数 sl_SelfTest_SRAM (SRAM_ECC_ERROR_SEARGING_2BIT、TRUE、&failInfoTCMRAM)时、返回值为 false、但 SRAM_ECC_ERROR_ENCELIT_1BIT 正常、测试通过。
根据用户手册中的指令、SRAM_ECC_ERROR_ENCED_1BIT 和 SRAM_ECC_ERROR_ENCED_2BIT 分别是强制性的 SRAM 1位 ECC 错误测试和2位 ECC 错误测试、但不会生成 nERROR 和 ESM 中断。 那么、这两个参数的用途是什么?
1位 测试通过、但2BIT 测试失败? 我的理解是、诊断中这两个参数的处理流程是相同的。 2位 ECC 测试是否有其他特殊设置?
谢谢。
您好、Xiaohong、
您能否为新问题打开新主题?
该函数以不同的方式使用两个参数。 如果 SRAM_ECC_ERROR_ENCED_1BIT 为 true、则会注入1位 ECC 错误、但对于 SRAM_ECC_ERROR_ENCEVIT_2BIT、会注入2位 ECC 错误。
如果发生2位 ECC 错误、CPU 将获得数据中止、并调用 ESM 回调函数。