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,When performing SRAM diagnosis, call the interface of the following safety diagnosis library, SL_SelfTest_SRAM(SRAM_PAR_ADDR_CTRL_SELF_TEST,TRUE,&failInfoTCMRAM), and enable the interrupt, _enable_interrupt_(),
When the program executes to the statement in the red box below, the program enters an abnormal interruption. What could be the cause of this?
Enter the abnormal interrupt code identified below
Hope to provide answers, thank you.
Can you please disable the interrupt before performing this self-test?
_disable_interrupt_()
if disable the interrupt is OK.
There is another question,when i set the SRAM 1 BIT ECC fault injection, as shown in the code below,but the variable sram_1bit_prof_faultinject_callback is always FLASE.
But the variable sram_1bit_prof_faultinject_callback is set TRUE at the ESM_ApplicationCallback() function。
This ESM_ApplicationCallback() function is called by the program _excpt_vec_abort_data(), and the interrupt program is also enabled in the HALCOGEN software, as shown in the figure below, but I added the print information and found that no interruption occurred. What is the reason? Are there any other settings?
Thanks a lot.
Noticed that the items in your HalCoGen GUI are messed up. You can correct them by changing the font size to 100% in windows settings:
Did you declare the sram_1bit_prof_faultinject_callback in your file: extern boolean sram_1bit_prof_faultinject_callback;
You need to enable the ESM interrupts:
Then enable the ESM channel 26/28
And Enable IRQ by calling: _enable_IRQ();
Thanks a lot ,My problem has been solved.
Other diagnostics for SRAM,When i call the function SL_SelfTest_SRAM(SRAM_ECC_ERROR_FORCING_2BIT,TRUE,&failInfoTCMRAM), the return value is FALSE,but the SRAM_ECC_ERROR_FORCING_1BIT is ok,the Test is pass.
According to the instructions in the user manual, SRAM_ECC_ERROR_FORCING_1BIT and SRAM_ECC_ERROR_FORCING_2BIT are mandatory SRAM 1 BIT ECC error and 2 bit ECC error tests, respectively, but no nERROR and ESM interrupts will be generated. So what is the purpose of these two parameters?
The 1BIT test passed, but the 2BIT test failed? My understanding is that the processing flow of these two parameters in the diagnosis is the same. Are there other special settings for the 2bit ECC test?
Thanks.
Hi Xiaohong,
Can you open a new thread for the new questions?
The function uses two parameters differently. If SRAM_ECC_ERROR_FORCING_1BIT is true, the 1- bit ECC error is injected, but for SRAM_ECC_ERROR_FORCING_2BIT, 2-bit ECC error is injected.
If 2-bit ECC error occurs, the CPU gets data abort, and ESM callback function is called.