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.

DCSM on F28377S (LAUNCHXL-F28377S LaunchPad)

Hello!

I'm trying to configure DCSM module on F28377S device using a LAUNCHXL-F28377S LaunchPad.

I've modified the example blink_with_dcsm_cpu01 in order to blink the LEDs on the board (connected to GPIO12 and GPIO13). I've ran the program on the board before uncommenting the configurations on the .asm file related to the DCSM module, and it was working correclty.

After this I've modified the .cmd and .asm files to configure the code security, as shown below.

On 2837xS_dcsm_lnk.cpu1.cmd file:

   dcsm_otp_z1_linkpointer 	: > DCSM_OTP_Z1_LINKPOINTER		PAGE = 0
   dcsm_otp_z1_pswdlock		: > DCSM_OTP_Z1_PSWDLOCK		PAGE = 0
   dcsm_otp_z1_crclock		: > DCSM_OTP_Z1_CRCLOCK			PAGE = 0
   dcsm_otp_z1_bootctrl		: > DCSM_OTP_Z1_BOOTCTRL		PAGE = 0
   dcsm_zsel_z1				: > DCSM_ZSEL_Z1_P0				PAGE = 0

   dcsm_otp_z2_linkpointer	: > DCSM_OTP_Z2_LINKPOINTER		PAGE = 0, type = DSECT
   dcsm_otp_z2_pswdlock		: > DCSM_OTP_Z2_PSWDLOCK		PAGE = 0, type = DSECT
   dcsm_otp_z2_crclock		: > DCSM_OTP_Z2_CRCLOCK			PAGE = 0, type = DSECT
   dcsm_otp_z2_bootctrl		: > DCSM_OTP_Z2_BOOTCTRL		PAGE = 0, type = DSECT
   dcsm_zsel_z2				: > DCSM_ZSEL_Z2_P0				PAGE = 0, type = DSECT

On DCSM_Z1_ZoneSelectBlock.asm file:

      .sect "dcsm_otp_z1_linkpointer"
	    .long 0x1FFFFFFF       ;Z1-LINKPOINTER1
	    .long 0xFFFFFFFF       ;Reserved
	    .long 0x1FFFFFFF       ;Z1-LINKPOINTER2
	    .long 0xFFFFFFFF       ;Reserved
	    .long 0x1FFFFFFF       ;Z1-LINKPOINTER3
	    .long 0xFFFFFFFF       ;Reserved

      .sect "dcsm_otp_z1_pswdlock"
	    ;;.long 0xFFFFFFFF     ;Z1-PSWDLOCK
	    ;;.long 0xFFFFFFFF     ;Reserved

      .sect "dcsm_otp_z1_crclock"
	    ;;.long 0xFFFFFFFF     ;Z1-CRCLOCK
	    ;;.long 0xFFFFFFFF     ;Reserved

      .sect "dcsm_otp_z1_bootctrl"
	    .long 0xFFFFFFFF      ;Z1-GPREG3
	    .long 0x00000B5A      ;Z1-BOOTCTRL

      .sect "dcsm_zsel_z1"

	    .long 0xFFFFFFFF      ;Z1-EXEONLYRAM
	    .long 0xFFFFFFFF      ;Z1-EXEONLYSECT
	    .long 0x10005555      ;Z1-GRABRAM
	    .long 0x15555555      ;Z1-GRABSECT

	    .long 0x33373753      ;Z1-CSMPSWD0 (LSW of 128-bit password)
	    .long 0x30463238      ;Z1-CSMPSWD1
	    .long 0x4d533332      ;Z1-CSMPSWD2
	    .long 0x00000054      ;Z1-CSMPSWD3 (MSW of 128-bit password)

The rest is unmodified.

I've "grabbed" all the Sectors and RAM to the Z1 in order to allow that any code at any section can access any memory address, but is inaccessible to the user.

I can successfully lock and unlock the memory with the "On-Chip Flash" tool. I can also see the values on the DCSM registers and they are the same I've programmed.

The problem is that the program doesn't run anymore. I press the Resume button on the debug view but it stops immediately indicating (Suspended - SW Breakpoint) and I don't have any breakpoint on the code.

Best regads,

Hugo Cunha.