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.
Tool/software: Code Composer Studio
Hello,
I have the same problem described in the former post, but there is no solution in the post:
Meaning, that I have a red error LED indicating that the nERROR pin is pulled low by the ESM module.
The LED is on directly after reset, so probably the error is stuck and has to be cleared.
During Debugging I found out, that the ESM->Status Register 3 has the value 0x00000008.
The specification says, that it is a group 3 error, but I cannot find a mapping what the 0x00000008 means.
When I compare it to the referenced thread, there is a table mentioned (Table 6-31), this says the value 8 is reserved.
A power cycle (even completely removing the hardware from everything) does not change the behaviour.
Can anyone give me a hint where I can find a mapping of the error reason to the flag and what this could mean?
Do I have an hardware error which cannot be fixed?
Best regards,
Markus
Hello Markus,
A group3 channel 3 error indicates an uncorrectable ECC error on access to L2 SRAM. ESM error channel mapping are specific to each part and you must refer the part's datasheet for this information. SPNS195C (datasheet for TMS570LC4357) includes this information.
ECC checking is always enabled within the Cortex-R5F CPU on TMS570LC4357. So you need to ensure that the L2 SRAM is initialized before any L2 SRAM access is made (e.g. stack usage on a function call).
Regards, Sunil
Hello Sunil,
Thank you for the quick reply. I still couldn't figure out why this error flag is set, but this might help to find the cause.
At the moment I struggle, because I don't get the ESM back into a non error state, at least not in the described way.
The documentation says to write a 0x00000005 into the ESM Error Key Register (ESMEKR) for clearing the error.
This is also what the software does (code is based on the SafeTI-Lib V.2.4.0).
This seems to have no effect, the error LED is still on, even when further stepping into the code and the ESM ERROR Pin Status Register (ESMEPSR) is still 0x00000000 and does not change to the expected 0x00000001.
By trying around, I figured out, that writing 0x0000000A and then writing 0x00000005 it will clear the error, the pin goes high, the LED goes off and the ESMEPSR reads 0x00000001. So this works fine, but I cannot find it described anywhere. It actually states the opposite, from spnu563_TRM:
"The ESM module cannot be switched into the error forcing mode if a failure has already been detected
in functional mode. The application command to switch to error forcing mode is ignored."
But instead of being ignored, it seems the necessary thing to do.
Is the approach of writing 0xA then 0x5 the correct approach and is this stated somewhere?
Best regards,
Markus