您的位置 首页 技术

C2000芯片的加锁和解锁

由于部分企业需要对芯片内部的程序进行加密处理,C2000提供了两种加密方式:一种是在工程中添加DSP

因为部分企业需求对芯片内部的程序进行加密处理,C2000供给了两种加密办法:一种是在工程中增加DSP28***_CSMPasswords.asm,一种是直接在CCS的on-chip flash中修正暗码。这儿以F28335为例,详细描述两种办法的操作办法:

增加CSM加密文件的办法

该办法是直接运用controlSUITE中供给的DSP28***_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

 .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中。

On – chip flash加密法

这个办法比较简单,烧写结束.out文件后,在debug界面点击Tools – On-Chip Flash,在弹出的窗口中下拉找到Code Security Password的Key 1~7方位填入你要加密的暗码,然后点击Program Password再点击lock就加密了,相当于对暗码区写入你上面.asm文件中的内容。

关于解密:

相同以F28335为例:

1、装备芯片的GPIO 84~87引脚的电平状况为1100(也有说只针对key4~key7加密,即只加密高64位暗码,则能够不必修正boot形式,直接衔接JTAG解密,但自己没有验证过),使芯片进入Branch to check boot mode形式(概况可参阅芯片Datasheet第106页,6.1.9 Boot ROM )。假如是TI购买的F28335 controlCARD(以R2.2版别为例),那么把controlCARD上SW2开关的1~4别离装备为1100即可。

2、翻开CCS,衔接芯片和PC,上电。装备target configuration(View – Target Configuration),装备完成后Test Connection一下,测验成功后进入下一步。(原本认为直接点击debug就能够了,但试验了几回发现必定要做一下这个过程才行,不然没办法进入debug形式)

3、点击小虫子图标进入debug形式,进入之后假如显现没有衔接JTAG的话先点击Connect Target衔接JTAG,然后点击Tools – On Chip Flash,在On Chip Flash中的Code Security Password – Key 0~7中输入正确的暗码,然后点击Unlock。这样就解锁了,体系会提示:

C28xx: GEL Output:

ADC Calibration not complete, check if device is unlocked and recalibrate.C28xx: Flash Programmer: Warning: The configured device (TMS320F28335), does not match the detected device (). Flash Programming operations could be affected. Please consider modifying your target configuration file.

C28xx: Starting device unlocking…

C28xx: Device unlocked. To clear the programmed password, please erase Sector A of Flash memory.

解锁成功后你就能够正常运用芯片进行烧写flash了。

4、假如你期望不替换程序但需求完全解锁芯片(今后发动都不需求输入暗码解锁),那么依照上述体系提示的“To clear the programmed password, please erase Sector A of Flash memory.”操作。接着方才的过程,跳到On Chip Flash中的Erase Sector Selection,挑选Sector A(默许是全选的),然后点击“Erase Flash”。这样就去掉暗码了,体系会提示:

C28xx: Erasing Flash memory…

C28xx: GEL Output:

ADC Calibration not complete, check if device is unlocked and recalibrate.C28xx: Operation completed successfully.

或许也能够把Code Security Password – Key0~7悉数改为F,默许便是不加密状况。

以上就完成了芯片的解锁和铲除暗码操作了。

加密注意事项:

将128-bit悉数设为1意味着不加密,即所谓的”unsecure”。

将128-bit悉数设为0意味着永久加密,此刻芯片不可被解密,即无法再操作flash,也无法读取其间的程序和数据。一般状况下,不要进行此设置。

DSP烧写过程中假如暗码区被写入暗码、烧写过程中遭到搅扰、电源不稳定、时钟不稳定等等原因都会导致芯片锁死。以上状况即为意外上锁,即你不知道暗码的状况下,几乎是没有办法解锁的,只能考虑替换芯片。

PS:

最新的28004x、2837x等芯片中增加了双代码安全模块(DCSM),该功用支撑将芯片中的memory划为两个独立区域,并设置各自独立的的128位CSM暗码。该功用能够阻挠未授权人员拜访加密内容,从而有用避免您的代码被重复或逆向编译;与此同时,需求保护与晋级的代码能够存储于另一个独立区域内,并授权给相关人员运用。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/jishu/91075.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部