原创 C2000DSP程序加密2种方法(显性和隐性)

2006-10-15 14:57 7228 12 3 分类: 处理器与DSP

C2000 DSP 程序加密2种方法(显性和隐性)


1.显性法


053452ae-f6d4-4baf-aac3-16c3d31349f7.JPG


选中Tools-F28xx On-chip Flash Programmer进入Flash编程界面(如下图所示),如上图所示,或者点击此图标9b21bc8c-cab8-4732-b1fe-7b8961cf28ba.JPG


Flash编程界面


06a50e3b-8e28-475f-86c0-9f7f5c763d4d.JPG


在“Code Security Password”区域设置好程序密码,然后按“Program Password”确定密码设置。在设置密码的时候,注意不要将Key0-Key8全设置为0,如果全为0,则芯片将会永久“Lock”!如果采用这种显性方法设置密码,在生产产品的时候,你需要将密码告诉生产线上的Flash烧写人员,以至除了公司核心的人员外,还会有更多的人知道你的程序密码,给保密性带来不利!


2.隐性法


为了避免上述情况的发生,让更少的人知道程序的密码,甚至只让一个人知道程序的密码,可以将密码嵌入到程序中,与其他程序一起编译好后,生成.out文件,这个时候,你只需要将.out文件给FLASH烧写人员就可以,不需要再让FLASH烧写人员自己设置密码,我们把这种方法叫做隐性法,在使用串口烧写FLASH的时候,也需要采用这种方法进行程序加密。


将下面的程序保存为.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


      .sect "csm_rsvd"
        .loop (3F7FF5h - 3F7F80h + 1)
              .int 0x0000
        .endloop


将下面的语句写入CMD中,


MEMORY


   CSM_RSVD    : origin = 0x3F7F80, length = 0x000076


   CSM_PWL     : origin = 0x3F7FF8, length = 0x000008



SECTIONS
{


   csmpasswds          : > CSM_PWL     PAGE = 0
   csm_rsvd               : > CSM_RSVD    PAGE = 0


}


按照上面的方法编译好后,你的程序已经加密好了,你只需要将生成的.out交给Flash烧写人员就可以了!


附件:1.加密汇编程序rar


             2.修改好的CMD文件rar

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
12
关闭 站长推荐上一条 /3 下一条