[应用相关] ST MCU是否具有加密功能?

[复制链接]
1218|32
 楼主| 和下土 发表于 2020-12-26 12:09 | 显示全部楼层 |阅读模式
ST MCU是否具有加密功能?有啥区别?
 楼主| 和下土 发表于 2020-12-26 12:11 | 显示全部楼层
整理:MilerShao



先说明下,这里说的加密仅指对MCU芯片做读保护处理,毕竟MCU芯片加密是个非常宽泛的概念和艺术。
 楼主| 和下土 发表于 2020-12-26 12:11 | 显示全部楼层
有时会有人就ST MCU读保护加密后能否二次使用的问题进行咨询,偶尔也有极少数人问及ST MCU是否具有加密功能。
 楼主| 和下土 发表于 2020-12-26 12:15 | 显示全部楼层
ST MCU的芯片都是FLASH型的,不论是STM8系列还是STM32系列都可以做读保护加密,以防程序代码被轻易读出,从而达到保护开发者知识产权等相关权益。关于ST MCU的读保护加密及芯片能否二次使用话题,得按STM8和STM32两大系列分开来说,二者在读保护处理上有差异。
 楼主| 和下土 发表于 2020-12-26 12:17 | 显示全部楼层
 楼主| 和下土 发表于 2020-12-26 12:18 | 显示全部楼层
一、STM8系列芯片读保护实施及解除
 楼主| 和下土 发表于 2020-12-26 12:18 | 显示全部楼层
对于STM8系列芯片,都可以进行读保护。ST官方有提供一个STVP的软件工具【它是经过STTOOLSET这个安装包安装的】,可以对STM8芯片的OPTION项进行编程,将OPTION中的读保护项打开,设置为ON,然后进行芯片编程就能使能芯片的读保护。之后,用户程序代码就不能被读出来了。还有部分STM8芯片【FLASH容量大于等于16K的芯片】往往支持通过UART、CAN、SPI等接口进行的系统编程,即ISP。ST官方有提供了一个Flash loader demonstrator工具软件,也可以利用它对STM8芯片进行芯片读保护加密。
 楼主| 和下土 发表于 2020-12-26 12:19 | 显示全部楼层
在读保护状态下,既不能读取芯片内的程序代码,也不能对芯片进行再次做程序编写或调试了。
 楼主| 和下土 发表于 2020-12-26 12:20 | 显示全部楼层
 楼主| 和下土 发表于 2020-12-26 12:21 | 显示全部楼层
那如果想对做过读保护加密的STM8芯片再次使用呢?还是可以利用上面提到的2个工具进行解除读保护。解除读保护后芯片内原来的程序代码全部烟消云散,不复存在。
 楼主| 和下土 发表于 2020-12-26 12:22 | 显示全部楼层
第一种还是通过STVP软件工具,将OPTION项中读保护项ROP关闭,即设置为OFF,然后进行OPITON单独编程,之后芯片内部程序代码全部被擦除,读保护解开,芯片就犹如一颗新的芯片,可以再次使用。
 楼主| 和下土 发表于 2020-12-26 12:22 | 显示全部楼层
还有一种办法就是,对于支持ISP功能的STM8芯片。利用上面提到的Flash loader demonstrator工具软件,将设置过读保护的STM8芯片进行芯片读保护解除。之后,芯片可以再次使用。
 楼主| 和下土 发表于 2020-12-26 12:23 | 显示全部楼层
当然,也可以借助其它第三方工具进行上述操作,原理是一样的。另外,除了利用上面提到的软件工具对MCU芯片做读保护加密外,用户也可以自行编程对OPTION项编程而达到对芯片读保护之目的。
 楼主| 和下土 发表于 2020-12-26 12:25 | 显示全部楼层
二、STM32系列芯片读保护实施及解除

对于STM32芯片的读保护的实施及解除怎么操作呢?目前为止,通用性STM32 MCU有9个系列。其中除了32F1系列只具有1级读保护外,其它8个子系列都具有2级读保护。 也就是说从读保护处理上看,32F1系列跟其它几个芯片要稍逊一筹。 顺便说下,其实后出的基于CORTEX M4的内核STM32F3系列的性价比要远高于32F1系列,支持DSP和FPU,外设更为丰富。
 楼主| 和下土 发表于 2020-12-26 12:26 | 显示全部楼层
 楼主| 和下土 发表于 2020-12-26 12:27 | 显示全部楼层
ST MCU技术手册上提到3级,即LEVEL 0,LEVEL 1,LEVEL 2。其中LEVEL 0 就是不做读保护级别。如果芯片被设置LEVEL 1读保护,在LEVEL 1级状态下,既不能读取芯片内的程序代码内容,也不能对芯片再次做存储空间的擦写或芯片调试了。
 楼主| 和下土 发表于 2020-12-26 12:27 | 显示全部楼层
FLASH存储器和备份域寄存器都不能被访问,即使强行访问也会出错。实施这步的操作可以利用ST官方的STLINK UTILITY工具、STVP 工具、Flash loader demonstrator来进行,将OPTION里的RDP选项选择LEVEL 1,之后进行编程。
 楼主| 和下土 发表于 2020-12-26 12:28 | 显示全部楼层
下面是两个工具STLINK UTILITY和STVP的操作界面示意图。

QQ截图20201226122946.png
QQ截图20201226122954.png
 楼主| 和下土 发表于 2020-12-26 12:30 | 显示全部楼层
 楼主| 和下土 发表于 2020-12-26 12:30 | 显示全部楼层
此时,LEVEL 1级读保护是可以解除的,同样可以利用上面的工具来完成。操作步骤跟加密动作类似,只是把读保护级别选择为LEVEL 0,然后进行OPTION编程,芯片读保护解除,此时芯片内的程序代码全部清空。显然,经过LEVEL 1读保护后,选项字节的访问是被开放了出来。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

114

主题

1405

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部