打印
[应用相关]

ST MCU是否具有加密功能?

[复制链接]
892|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两大系列分开来说,二者在读保护处理上有差异。

使用特权

评论回复
5
和下土|  楼主 | 2020-12-26 12:17 | 只看该作者

使用特权

评论回复
6
和下土|  楼主 | 2020-12-26 12:18 | 只看该作者
一、STM8系列芯片读保护实施及解除

使用特权

评论回复
7
和下土|  楼主 | 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芯片进行芯片读保护加密。

使用特权

评论回复
8
和下土|  楼主 | 2020-12-26 12:19 | 只看该作者
在读保护状态下,既不能读取芯片内的程序代码,也不能对芯片进行再次做程序编写或调试了。

使用特权

评论回复
9
和下土|  楼主 | 2020-12-26 12:20 | 只看该作者

使用特权

评论回复
10
和下土|  楼主 | 2020-12-26 12:21 | 只看该作者
那如果想对做过读保护加密的STM8芯片再次使用呢?还是可以利用上面提到的2个工具进行解除读保护。解除读保护后芯片内原来的程序代码全部烟消云散,不复存在。

使用特权

评论回复
11
和下土|  楼主 | 2020-12-26 12:22 | 只看该作者
第一种还是通过STVP软件工具,将OPTION项中读保护项ROP关闭,即设置为OFF,然后进行OPITON单独编程,之后芯片内部程序代码全部被擦除,读保护解开,芯片就犹如一颗新的芯片,可以再次使用。

使用特权

评论回复
12
和下土|  楼主 | 2020-12-26 12:22 | 只看该作者
还有一种办法就是,对于支持ISP功能的STM8芯片。利用上面提到的Flash loader demonstrator工具软件,将设置过读保护的STM8芯片进行芯片读保护解除。之后,芯片可以再次使用。

使用特权

评论回复
13
和下土|  楼主 | 2020-12-26 12:23 | 只看该作者
当然,也可以借助其它第三方工具进行上述操作,原理是一样的。另外,除了利用上面提到的软件工具对MCU芯片做读保护加密外,用户也可以自行编程对OPTION项编程而达到对芯片读保护之目的。

使用特权

评论回复
14
和下土|  楼主 | 2020-12-26 12:25 | 只看该作者
二、STM32系列芯片读保护实施及解除

对于STM32芯片的读保护的实施及解除怎么操作呢?目前为止,通用性STM32 MCU有9个系列。其中除了32F1系列只具有1级读保护外,其它8个子系列都具有2级读保护。 也就是说从读保护处理上看,32F1系列跟其它几个芯片要稍逊一筹。 顺便说下,其实后出的基于CORTEX M4的内核STM32F3系列的性价比要远高于32F1系列,支持DSP和FPU,外设更为丰富。

使用特权

评论回复
15
和下土|  楼主 | 2020-12-26 12:26 | 只看该作者

使用特权

评论回复
16
和下土|  楼主 | 2020-12-26 12:27 | 只看该作者
ST MCU技术手册上提到3级,即LEVEL 0,LEVEL 1,LEVEL 2。其中LEVEL 0 就是不做读保护级别。如果芯片被设置LEVEL 1读保护,在LEVEL 1级状态下,既不能读取芯片内的程序代码内容,也不能对芯片再次做存储空间的擦写或芯片调试了。

使用特权

评论回复
17
和下土|  楼主 | 2020-12-26 12:27 | 只看该作者
FLASH存储器和备份域寄存器都不能被访问,即使强行访问也会出错。实施这步的操作可以利用ST官方的STLINK UTILITY工具、STVP 工具、Flash loader demonstrator来进行,将OPTION里的RDP选项选择LEVEL 1,之后进行编程。

使用特权

评论回复
18
和下土|  楼主 | 2020-12-26 12:28 | 只看该作者
下面是两个工具STLINK UTILITY和STVP的操作界面示意图。



使用特权

评论回复
19
和下土|  楼主 | 2020-12-26 12:30 | 只看该作者

使用特权

评论回复
20
和下土|  楼主 | 2020-12-26 12:30 | 只看该作者
此时,LEVEL 1级读保护是可以解除的,同样可以利用上面的工具来完成。操作步骤跟加密动作类似,只是把读保护级别选择为LEVEL 0,然后进行OPTION编程,芯片读保护解除,此时芯片内的程序代码全部清空。显然,经过LEVEL 1读保护后,选项字节的访问是被开放了出来。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

102

主题

1061

帖子

0

粉丝