EDN首页   博客首页

日志档案

发表于 2006-10-15 14:57:10

2

标签: C2000  DSP  程序  加密  

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

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

1.显性法

选中Tools-F28xx On-chip Flash Programmer进入Flash编程界面(如下图所示),如上图所示,或者点击此图标

Flash编程界面

在“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

系统分类: DSP   |   用户分类: C2000 DSP 软件设计   |   来源: 无分类   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(1156)    回复(1)  

投一票您将和博主都有获奖机会!

最新评论

  • 张锦

    2006-10-15 18:31:22

    Very Good!