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.

TMS570LC4357: NOINIT Variables on RAM

Part Number: TMS570LC4357
Other Parts Discussed in Thread: TMS570LS3137

Tool/software:

I want to use a part of ram as a nonvolatile memory like eeprom. I do not want to initialize or set to zero variables without poweron reset.I am trying this concept but avoiding ECC errors and to ensure integrity of RAM I want to use meminit fuction to all ram. I am trying to meminit to half part of RAM sections(total 8 hardware section, ı'm grouping this 8 hardware section as 2 software section each 4 hardware sections ) using MEMINITDOMAIN register and after that I'm copying my data to this section from section that has no initialization. I am using meminit function to initialize second half part of RAM. After initialization of second half part of RAM I'm copying again data from first part of the RAM to second part of the RAM and I'm using meminit function to initialize first part of RAM. (I'm also editing my linker file correctly)


In theory it seems like a legal way to use a part of ram as a noinit memory. But when I use this scenario I am to encounter a few problems.

When I software,cpu or system reset there is no problem also when I use PORRST(power on reset) button on HDK there is no problem. But when I tried turn HDK's power off and after that power on, the all RAM variables are garbage value. (I'm reconnecting to HDK with IDE after power off/power on sequence to see RAM variables). When I tried to use PORRST button again to see behaviour of broken RAM, the RAM variables seems normal after porst button. I'm running code again and this time I'm encountering ESM error on startup.

I'm attaching a file to clarify what I'm trying.


The ESM error that I see is ESM group 3 channel 8 error. When I look up to datasheet, it says this error is reserved so I can not analyze the error.
I think ECC logic causes of these problems.
1) Can I disable ECC logic when the code run on startup file ?
2) Why the behaviour of RAM different when I power off and PORRST button ?
3) How can I use a part of RAM as a NOINIT section correctly ? Is there a legal way to implement it ?
4) What means ESM group 3 channel 8 error ?