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.

F28377S用DCSM加密后无法解密

Other Parts Discussed in Thread: UNIFLASH

我尝试了加密后觉得加密不是很好用,又想解密了,但是怎么都不成功。

一、在ccs--On-Chip Flash里面点击解密,然后擦除FLASH,重新烧写还是提示解密失败。

二、在ccs--On-Chip Flash里面点击解密,然后把密码都改成0xFFFFFFFF,点击Program Password,提示

我尝试了用uniFlash来解密,但还是一样的结果

请问,还有什么办法解密吗?

下面附上dcsm的两个文件和cmd

// DCSM_Z1_ZoneSelectBlock.asm

      .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 ; ERIC: 0xFFFFFFF0 LOCK PASSWORD
    .long 0xFFFFFFFF     ;Reserved

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

      .sect "dcsm_otp_z1_bootctrl"
;;    .long 0xFFFFFFFF     ;Reserved
;;    .long 0xFFFFFFFF     ;Z1-BOOTCTRL

      .sect "dcsm_zsel_z1"

    .long 0xFFFFFFFF      ;Z1-EXEONLYRAM
    .long 0xFFFFFFFF      ;Z1-EXEONLYSECT
    .long 0xFFFFFFFF      ;Z1-GRABRAM
    .long 0x3AAAAAAA      ;Z1-GRABSECT

    .long 0xFFFFFFFF      ;Z1-CSMPSWD0 (LSW of 128-bit password)
    .long 0xFFFFFFFF      ;Z1-CSMPSWD1
    .long 0xFFFFFFFF      ;Z1-CSMPSWD2
    .long 0x12345678      ;Z1-CSMPSWD3 (MSW of 128-bit password)

// DCSM_Z2_ZoneSelectBlock.asm

      .sect "dcsm_otp_z2_linkpointer"
;;    .long 0x1FFFFFFF     ;Z2-LINKPOINTER1
;;    .long 0xFFFFFFFF     ;Reserved
;;    .long 0x1FFFFFFF     ;Z2-LINKPOINTER2
;;    .long 0xFFFFFFFF     ;Reserved
;;    .long 0x1FFFFFFF     ;Z2-LINKPOINTER3
;;    .long 0xFFFFFFFF     ;Reserved

      .sect "dcsm_otp_z2_pswdlock"
;;    .long 0xFFFFFFFF     ;Z2-PSWDLOCK
;;    .long 0xFFFFFFFF     ;Reserved

      .sect "dcsm_otp_z2_crclock"
;;    .long 0xFFFFFFFF     ;Z2-CRCLOCK
;;    .long 0xFFFFFFFF     ;Reserved

      .sect "dcsm_otp_z2_bootctrl"
;;    .long 0xFFFFFFFF     ;Reserved
;;    .long 0xFFFFFFFF     ;Z2-BOOTCTRL

      .sect "dcsm_zsel_z2"
;;    .long 0xFFFFFFFF      ;Z2-EXEONLYRAM
;;    .long 0xFFFFFFFF      ;Z2-EXEONLYSECT
;;    .long 0xFFFFFFFF      ;Z2-GRABRAM
;;    .long 0xFFFFFFFF      ;Z2-GRABSECT

;;    .long 0xFFFFFFFF      ;Z2-CSMPSWD0 (LSW of 128-bit password)
;;    .long 0xFFFFFFFF      ;Z2-CSMPSWD1
;;    .long 0xFFFFFFFF      ;Z2-CSMPSWD2
;;    .long 0xFFFFFFFF      ;Z2-CSMPSWD3 (MSW of 128-bit password)

// 2837xD_dcsm_lnk_cpu1.cmd

MEMORY
{
PAGE 0 :  /* Program Memory */

   /* Z1 OTP.  LinkPointers */
   DCSM_OTP_Z1_LINKPOINTER   : origin = 0x78000, length = 0x00000C
   /* Z1 OTP.  PSWDLOCK/RESERVED */
   DCSM_OTP_Z1_PSWDLOCK	    : origin = 0x78010, length = 0x000004
   /* Z1 OTP.  CRCLOCK/RESERVED */
   DCSM_OTP_Z1_CRCLOCK	    : origin = 0x78014, length = 0x000004
   /* Z1 OTP.  RESERVED/BOOTCTRL */
   DCSM_OTP_Z1_BOOTCTRL	    : origin = 0x7801C, length = 0x000004

   /* DCSM Z1 Zone Select Contents (!!Movable!!) */
   /* Z1 OTP.  Z1 password locations / Flash and RAM partitioning */
   DCSM_ZSEL_Z1_P0	        : origin = 0x78020, length = 0x000010

   /* Z2 OTP.  LinkPointers */
   DCSM_OTP_Z2_LINKPOINTER	: origin = 0x78200, length = 0x00000C
   /* Z2 OTP.  GPREG1/GPREG2 */
   DCSM_OTP_Z2_GPREG	        : origin = 0x7820C, length = 0x000004
   /* Z2 OTP.  PSWDLOCK/RESERVED */
   DCSM_OTP_Z2_PSWDLOCK	    : origin = 0x78210, length = 0x000004
   /* Z2 OTP.  CRCLOCK/RESERVED */
   DCSM_OTP_Z2_CRCLOCK	    : origin = 0x78214, length = 0x000004
   /* Z2 OTP.  GPREG3/BOOTCTRL */
   DCSM_OTP_Z2_BOOTCTRL	    : origin = 0x7821C, length = 0x000004

   /* DCSM Z1 Zone Select Contents (!!Movable!!) */
   /* Z2 OTP.  Z2 password locations / Flash and RAM partitioning  */
   DCSM_ZSEL_Z2_P0	        : origin = 0x78220, length = 0x000010

}

SECTIONS
{
   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
   dcsm_otp_z2_pswdlock		: > DCSM_OTP_Z2_PSWDLOCK		PAGE = 0
   dcsm_otp_z2_crclock		: > DCSM_OTP_Z2_CRCLOCK			PAGE = 0
   dcsm_otp_z2_bootctrl		: > DCSM_OTP_Z2_BOOTCTRL		PAGE = 0
   dcsm_zsel_z2				: > DCSM_ZSEL_Z2_P0				PAGE = 0
}

  • 你好,烦请详细描述一下芯片on-chip flash解密的过程。不知道你的解密过程是否有问题
    另外,加密的话跟解密一样,直接在on-chip flash中设置密码就可以了,不一定要用CSM文件加密
  • 一、清除flash方式

    1. 通过ram运行的模式调试blinky_led例程连接到28377,然后点击菜单栏Tools -- On Chip Flash

    2. 在On Chip Flash标签页找到CSMPSWD组,输入密码,点击Unlock

    3. 在On Chip Flash标签页中点击Erase Flash。

    二、直接修改密码方式

    1. 通过ram运行的模式调试blinky_led例程连接到28377,然后点击菜单栏Tools -- On Chip Flash

    2. 点击工具栏复位芯片

    3. 输入密码解锁,把密码换成0xFFFFFFFF,然后点击Program Passwod

    这两种方式都尝试过了,然后烧写程序还是要密码才能烧写,但是烧写完,USB通信不正常,能连接,但是上位机发送的数据28377好像接收不了。

  • 首先,解密之前有没有把boot mode配置为Get Mode模式?

    另外,感觉你的flash并没有被清除,尝试一下单个分区依次擦除呢?

  • 不好意思,前几天太忙了。这个我今天下午试了,还是解锁不了,跟之前的提示是一样的。我检查了flash,也试过一个一个区地去擦除,全部都是FFFF了,On-Chip Flash 里面有blank check也是通过的,还有其他办法吗?