DSP 程序加密解密方法:
加密方法有两种:
第一种:“显示”法加密步骤如下:
1,在 Debug Configurations 下拉菜单中,点击 Program;在 Program 菜单中选择 Load
symbols only,然后点击 Apply;再点击 Debug,此时,CCS 已经与目标板建立了连接。
2 , 在 Memory Map 菜 单 中 , 点 击 On-Chip Flash , 会 出 现 如 下 图 所 示 界 面
此时自定义密码通过修改 Code Security Password 中的 Key0~Key7,但是 Key0~Key7 不
能全设置为 0,否则芯片将永远被锁。
修改好 Key0~Key7 之后,点击 Program Password,CCS 下发会出现如下图所示的提示:
再点击 Lock,则加密完成。会出现如下所示加密完成提示:
第二种:“隐式”加密法,即通过添加汇编代码:具体步骤如下:
1,将下面的程序保存为.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
2,将下面的语句写入 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
…
}
3,按照上面的方法编译好后,你的程序已经加密好了,你只需要将生成的.out 交给 Flash
烧写人员就可以了。
注意:“隐式”加密,如果加密了 128 位,则必须辅助硬件复位,才能用 CCS 解密。如
果只加密高 64 位,则不需要硬件复位,就可利用 CCS 解密。
硬件复位方法:上电之前 GPIO34 引脚拉低,上电之后,恢复其默认状态;接下来解密
方法是一样的。
加密高 64 位方法:
1,将下面的程序保存为.asm 文件,添加到工程中,与其他文件一起编译。
.sect "csmpasswds"
.int 0xFFFF ;PWL4
.int 0xFFFF ;PWL5
.int 0xFFFF ;PWL6
.int 0xFFFF ;PWL7
.sect "csm_rsvd"
.loop (3F7FF5h - 3F7F80h + 1)
.int 0x0000
.endloop
2,将下面的语句写入 CMD 中,
MEMORY
{
…
CSM_RSVD : origin = 0x3F7F80, length = 0x000076
…
CSM_PWL : origin = 0x3F7FFC, length = 0x000004
…
}
SECTIONS
{
…
csmpasswds : > CSM_PWL PAGE = 0
…
csm_rsvd : > CSM_RSVD PAGE = 0
…
}
DSP 程序解密步骤:
1,跟“显示”加密法第 1 步一样,先建立 CCS 与目标板之间的连接;
2,跟“显示”加密法第 2 步一样,只是输入 Key0~Key7 为你已加密的密码,然后点击
Unlock,会出现如下提示:
3,擦除 Flash 中的数据,点击如下图所示
中的 Erase Flash,若出现如下所示的提示
则 Flash 中的数据已擦除,即完成了程序的解密。
注释:以上所示的界面均为 CCS5.3所呈现的。