Why protected char* don't remember the data

I try to declare variables as protected.

protected char *ipA;

sysIsSoftReset(); // restore any protected variables

but after power up ipA don’t remember the data.

Can you share your entire program? If you run Samples/reset_demo.c, does that work? Does ipA point to a constant string somewhere in flash? If not, ipA might be protected but the buffer it points to is not.

What if you declare protected char ipA[40]; and then write data into that buffer?