Part Number: TMS320F280025C
Other Parts Discussed in Thread: UNIFLASH
Hi,
I'm trying out the DCSM feature of the C2000 microcontrollers eval boards and it seems to work so far. Now I uploaded
first a project, that includes DCSM with the following features:

Then I wanted to flash the application again with a minor modification in it, but I did not change anything in the .syscfg tool (did not mark update the linkpointer). I unlocked the controller with UNIFLASH and the correct password and downloaded the file to the controller successfully. It looks like there is only the firmware on the controller and I cannot unlock the controller anymore with the password I used and also when I increment the linkpointer by one and use the new mask for the password, I get no access. Did I brick the controller? Can I somehow reverse this?
Edit: I tried to verify what actually the problem is on another EVAL board, and it looks like it does not come from not changing the linkpointer, but from using a wrong password instead in the application.
I tried to see, if a wrong password can be detected like this:
DCSM_CSMPasswordKey psCMDKey;
psCMDKey.csmKey0 = 0xEFFFFFFF;
psCMDKey.csmKey1 = 0x47FFFFFF;
psCMDKey.csmKey2 = 0xFFFFFFFF;
psCMDKey.csmKey3 = 0xFFFFFFFF;
// Unlock the zone 1, driverlib.
DCSM_unlockZone1CSM(&psCMDKey);
// check if it is unlocked.
if(DCSM_getZone1CSMSecurityStatus() == DCSM_STATUS_LOCKED) {
statusCode.status = UNLOCK_ERROR;
}
So what actually happen when I run this is, that first the controller seems to stop when flashed initially. Then after a hardware reset, it boots the application like normal. I don't understand, how DCSM_unlockZone1CSM() with a wrong key can actually brick my controller? In the end, I want only allow applications with the correct pw, so how can I achieve this and can I somehow reverse this brick?
