I use the microcontroller S12XET256 with codewarrior 5.0.
My application run in a noised environment so I must enable the COP at start by loading the COPCTL from flash at reset.
As recommended, I use this 4 instructions to program flash NV registers:
const byte NVFPROT_INIT @0x0000FF0C = 0x7F; //FULL PFLASH SECURED
const byte NVEPROT_INIT @0x0000FF0D = 0xFF;
const byte NVFOPT_INIT @0x0000FF0E = 0xF9; //COP CR[2:0]=6
const byte NVFSEC_INIT @0x0000FF0F = 0x7D //SECURED, KEY DISABLED
But after start I read this by respective register and the COP, obviously, don't run:
FPROT=0x7F (OK)
EPROT=0x7F (wrong, should be 0x7F)
FOPT=0xFF (wrong, should be 0xF9)
FSEC=0xFF (wrong, should be 0x7D)
I try also with this settings:
const byte NVFPROT_INIT @0x0000FF0C = 0xFF;
const byte NVEPROT_INIT @0x0000FF0D = 0xFF;
const byte NVFOPT_INIT @0x0000FF0E = 0xF9;
const byte NVFSEC_INIT @0x0000FF0F = 0xFF
And I read this:
FPROT=0xFF (OK)
EPROT=0xFF (OK)
FOPT=0xFE (wrong, should be 0xF9)
FSEC=0xFE (wrong, should be 0xFF)
I use this funcion for another microcontroller (S12P128) without problems.
I wondering if someone has used this function with success or know the cause of problem.
Thanks in advance and best regards