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.

28335:28335加密问题:DSP2833x_CSMPasswords.asm与CCS3.3的F28xx On-Chip Programer会不会有冲突?

看了C2833x/C2823x C/C++ Header Files and Peripheral Examples Quick Start Version 1.31中的Flash例程
其中,DSP2833x_CSMPasswords.asm 中含有安全密码
.sect "csmpasswds"

.int 0xFFFF ;PWL0 (LSW of 128-bit password)
.int 0xFFFF ;PWL1
.int 0xFFFF ;PWL2
.int 0xFFFF ;PWL3
.int 0xFFFF ;PWL4
.int 0xFFFF ;PWL5
.int 0xFFFF ;PWL6
.int 0xFFFF ;PWL7 (MSW of 128-bit password)

且F28335.cmd中含有
MEMORY
{
PAGE 0:
……
CSM_PWL : origin = 0x33FFF8, length = 0x000008
……
}

SECTIONS
{
……
csmpasswds : > CSM_PWL PAGE = 0
……
}


如果用CCS3.3的F28xx On-Chip Programer烧写程序,会不会有冲突?

F28335.rar
  • DSP2833x_CSMPasswords.asm中填写密码,直接烧进去就行了。F28xx On-Chip Programer中的密码主要是用来解锁的,比如操作已经加密的芯片。

  • 我是不是可以这样理解:

    DSP2833x_CSMPasswords.asm中的密码用于实际加密;

    F28xx On-Chip Programer中的密码用于解密(这里的密码只用于解密,不会修改Flash中的密码区)?

  • rufeng Jing 说:

    我是不是可以这样理解:

    DSP2833x_CSMPasswords.asm中的密码用于实际加密;

    F28xx On-Chip Programer中的密码用于解密(这里的密码只用于解密,不会修改Flash中的密码区)?

    补充一点,当DSP2833x_CSMPasswords.asm中没有加密时(如上面的例子,所有PWL0~7里的内容都为0xFFFF),可以在烧写完毕.out文件后,在F28xx On-Chip Programer中填入你的密码,然后点击lock就加密了,相当于对密码区写入你上面.asm文件中的内容。

  • 1. 假设此时芯片并未加密。

         将DSP2833x_CSMPasswords.asm中的密码改为全3

         F28xx On-Chip Programer中的密码为全F,只烧写.out是否会出错?


         假设只烧写.out且成功,实际片子上的密码为F还是全3?


    2. F28xx On-Chip Programer中的密码操作含有unlock、lock和Program Password三个按键,是否意味着其能对CSM单独操作(解锁、烧写密码、上锁),而并非必须带上.out文件?


  • rufeng Jing 说:

    1. 假设此时芯片并未加密。

         将DSP2833x_CSMPasswords.asm中的密码改为全3

         F28xx On-Chip Programer中的密码为全F,只烧写.out是否会出错? 不出错。


         假设只烧写.out且成功,实际片子上的密码为F还是全3? 全3.


    2. F28xx On-Chip Programer中的密码操作含有unlock、lock和Program Password三个按键,是否意味着其能对CSM单独操作(解锁、烧写密码、上锁),而并非必须带上.out文件?

    是的,如果是一块板子已经烧写程序并加密,然后你连接成功仿真器后,可以不导入工程,也不加载.out文件,直接通过F28xx On-Chip Programer手动输入密码,然后选择unlock即可。当然,如果有.out文件且在汇编文件中加入相同的密码,也可以直接解密。


    对于空芯片,或者未加密芯片(片上有程序),或者已解密芯片(片上有程序且加密,但通过上述方法已解密),如果要烧写一个未加密的.out文件,可以在烧写在成功后,在F28xx On-Chip Programer手动输入密码,然后program,再选择lock,即相当于将密码写入了芯片,然后通过该密码锁住了芯片,也就是成功加密。

  • 是不是这个样子:

    加密2种途径:

    1. 密码伴随.out文件烧入;

    2. 单独操作F28xx On-Chip Programer烧入密码。


    解密2种途径:

    1. 密码伴随.out文件烧入;

    2. 单独操作F28xx On-Chip Programer解密。


  • 是的,操作时只使用任何一种即可。

  • 请问下,我用源程序烧录,烧录完毕后,修改密码,然后点击 F28xx On-Chip Programer中的Program Password,再点击lock。下电,在上电,发现板子直接跟CCS连接不上了,只能换芯片?这是为什么,我用的是28335,CCS3.3

  • huizhen zhang 说:

    请问下,我用源程序烧录,烧录完毕后,修改密码,然后点击 F28xx On-Chip Programer中的Program Password,再点击lock。下电,在上电,发现板子直接跟CCS连接不上了,只能换芯片?这是为什么,我用的是28335,CCS3.3

    这个我也不清楚。

    如果长时间没有人跟帖作答,你可以新写一个自己的帖子。

  • 请查看链接:http://processors.wiki.ti.com/index.php/Code_Security_Module_FAQ_for_C2000中关于CSM的说明,请试下Frequently Asked Questions ECSL的方法。

  • 请参考TMS320F2833x_23x System Control and Interrupts Reference Guide D版本第25页说明,这不是一个问题,而是就是这样设计的,其中提到出两种硬件上的解决办法,建议选择第二种。

  • 请问加过密的DSP芯片不能再连接仿真器了? 除非通过Boot跳线跳成等待模式???

  • 你可以参考文档 sprug18

    中的CSM的描述,Page 29页

  • 谢谢! 我看一下!

  • 您具体说一下可以吗? 应该怎么通过硬件的方法解不能连接仿真器的问题。短接哪些跳线?

  • 将XRSn脚对地短接,再连接仿真器再进行解密操作

  • 上电前时加密的28335进入boot模式就可以连接仿真器解密。此时点击F28xx On-Chip Programer或者其快捷图标后,会弹出一个小框,让输入密码。

    一般可以再上电前将XA15,XA14,XA13,上拉(这几个通常都是上拉的) ,XA12下拉进入SCI boot模式,然后上电,则可以连接仿真器,

    如果做了SCI烧录接口,则将XA12下拉即可。

    加密最好使用DSP2833x_CSMPasswords.asm,可以记住密码

    F28xx On-Chip Programer,这里填写容易忘记 。

  • 谢谢您!!!

  • 参考,学习了,现在也需要这个功能

  • 这样子试了,可是想再次烧写程序进去仿真器怎么也连不上,该怎么处理

  • 将XRSn脚对地短接,再连接仿真器再进行解密操作

    如果想避免连接不上仿真器,可以仅对低64位进行加密

  • 假设我的芯片内部以及烧录了带加密的.out文件,我想再次下载.out文件,里面的密码没有改,我直接点击下载这样可以吗?还是说必须要点击UNLOCK

  • 可以的,不需要unlock解密。建议以后新发一个帖子提问。

  • C2000的加密设计不太好,实际上用户不关心密码是什么,只要内容读不出来就可以。
    我写的bootloader里面是这样处理的:
    DSP2833x_CSMPasswords.asm写入随便一个密码,内容无所谓,够复杂就可以。
    bootloader写入以后,芯片自动加密。
    bootloader本身提供自擦除功能,可以擦除自身整个FLASH。擦除整个FLASH以后,芯片就成为空片了,自动解除加密。