Code Security Module (CSM)
CSM C
CSM C
-
-
Code Examples
Code Examples
volatile int *PWL = &CsmPwl.PSWD0; //Pointer to PWL register f
volatile int *PWL = &CsmPwl.PSWD0; //Pointer to PWL register f
ile
ile
volatile int i, tmp;
volatile int i, tmp;
for (i = 0; i<8; i++) tmp = *PWL++; //Dummy reads of PWL locati
for (i = 0; i<8; i++) tmp = *PWL++; //Dummy reads of PWL locati
ons
ons
asm (” EALLOW”); //KEY regs are EALLOW prote
asm (” EALLOW”); //KEY regs are EALLOW prote
cted
cted
CsmRegs.KEY0 = PASSWORD0; // Write the passwords
CsmRegs.KEY0 = PASSWORD0; // Write the passwords
CsmRegs.KEY1 = PASSWORD0 // to the Key registers
CsmRegs.KEY1 = PASSWORD0 // to the Key registers
CsmRegs.KEY2 = PASSWORD2;
CsmRegs.KEY2 = PASSWORD2;
CsmRegs.KEY3 = PASSWORD3;
CsmRegs.KEY3 = PASSWORD3;
CsmRegs.KEY4 = PASSWORD4;
CsmRegs.KEY4 = PASSWORD4;
CsmRegs.KEY5 = PASSWORD5;
CsmRegs.KEY5 = PASSWORD5;
CsmRegs.KEY6 = PASSWORD6;
CsmRegs.KEY6 = PASSWORD6;
CsmRegs.KEY7 = PASSWORD7;
CsmRegs.KEY7 = PASSWORD7;
asm (” EDIS”);
asm (” EDIS”);
asm(” EALLOW”); //CSMSCR reg is EALLOW prote
asm(” EALLOW”); //CSMSCR reg is EALLOW prote
cted
cted
CsmRegs.CSMSCR.bit.FORCESEC = 1; //Set FORCESEC bit
CsmRegs.CSMSCR.bit.FORCESEC = 1; //Set FORCESEC bit
asm (”EDIS”);
asm (”EDIS”);
Unlocking the CSM:
Unlocking the CSM:
Locking the CSM:
Locking the CSM:
10 - 18 C28x - System Design