MSP430熔丝及加密总结


MSP430熔丝及加密总结

MSP430是使用熔丝或者电子熔丝去做内部代码的保护,如果熔丝烧断,那么将不能使用JTAG或者BSL去非法访问内部代码。MSP430F1/F2/F4系列是采用物理熔丝的方式,使用编程器在TEST引脚或者TDI引脚上加6.5V±0.5V的电压,采取这种方式,JTAG接口被禁止而且是不可恢复的,只能通过BSL去访问。MSP430F5/F6/FR2/FR4/FR5/FR系列都是采用e-Fuse电子熔丝的方式去做加密,一般是在Flash/FRAM中的2个字的位置(签名)内写入一定的内容去实现加锁或者加密码。器件只能通过密码保护的BSL去访问。通过BSL去访问器件,去清除JTAG签名区,那么是可以重新恢复并且访问MCU的。


F5x/F6x eFuse:

JTAG签名在17FCh~17FFh地址内,写入全0或者全F以外的值会将JTAG/BSL接口锁住。要对这些地址编程,那么首先要清除SYSBSLC寄存器中的SYSBSLPE位,用于解锁BSL Flash被保护的区域。


如果要清除JTAG/SBW保护,可以使用BSL去对JTAG签名写入全0,BSL也是通过中断向量表中的FFE0h~FFFFh中的至少32bytes的密码去做保护。因为JTAG签名是位于被保护的BSL区域,BSL首先回清除SYSBSLC寄存器中的 SYSBSLPE位,随后对JTAG签名写入全0.

FR5xx/FR6xxeFuse

JTAG签名在FRAM的FF80~FF83h范围内,写入 55555555h到JTAG签名中,JTAG/BSL接口被无密码的锁住。如果想要解除JTAG/SBW保护,bootloader可以使用5555或AAAA以外的值去清除JTAG签名。或者执行BSL整体擦除指令。


如果是5555_5555h到JTAG签名区中,那么JTAG会被直接锁死,只能通过BSL命令去解锁。

如果写入AAAA_xxxxh到JTAG签名区中,那么JTAG被密码锁死,可以通过密码去让仿真器访问MCU。

如果JTAG签名中写入其它值,那么JTAG/SBW没有被锁住。

 

FR4xx/FR2xxeFuse

JTAG签名在FF80~FF83h范围内,对JTAG签名中写入 00000000hor FFFFFFFFh以外的值可以将JTAG进行无密码解锁的锁住。可以使用Bootloader对签名去写入全0或者全1去解锁JTAG/BSL保护。BSL也是密码保护的,在中断向量表中的至少32个字节做BSL的密码,也可以通过BSL的整体擦除命令去解锁。


所以,如果JTAG/SBW被锁住,那么仿真器不能通过密码去访问器件,只能采用BSL按照一定的密码匹配去解锁器件。

 

FR5/FR6xx加密例程分析


在linker文件中将.jtagsignature分配到JTAG签名区去,0xFF80中写入0xAAAA,那么是采用密码的方式加锁eFuse,0xFF82中写入0x0002,那么密码的长度为2个字节。.jtagpassword被分配到0xFF88起始的区域中,写入相应的密码。

器件加密后,再进行一次BOR复位,那么JTAG被锁住了。可以再CCS中对.ccxml文件进行配置然后再次让仿真器访问器件。如下图所示。


这时候MCU是已经被加密了,如果执行芯片擦除操作,或者在代码中将JTAG签名区写入FFFF_FFFFh(5555或者AAAAh之外的值),那么芯片也能解密。

 

另外,BSL也是可以被禁止使用的。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值