打印
[技术相关]

华芯微特32位MCU的MCU加密方法:读保护和SWD封锁

[复制链接]
364|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

在SWM系列MCU产品中有多种加密手段保护用户程序。在这里华芯微特以32位MCU SWM190为例给大家简单介绍一下MCU的加密功能。

华芯微特程序加密的目的是防止芯片中的程序被他人读出使用,现主要介绍的加密方法有:

1、读保护

2、SWD封锁

以上加密方法通过在用户程序中将0x1C偏移地址初始化为指定关键字,即可实现以下指定级别的加密。



程序下载后再次上电,芯片将处于指定加密级别的状态。


SWM190 # 加密操作函数配置 #

以SWM190为例,打开工程文件中的startup_SWM190.s文件,找到__Vectors,以其为0x00地址,找到0x1c地址处,此处默认值为0,默认FLASH读正常。


正常读写具体配置函数如下图所示:



SWD读取加密时,将0x1c处写0x43211234,编译程序并下载,重新上电后芯片处于SWD读加密状态,无法访问FLASH,但可以读取RAM中的数据,可通过擦除FALSH并复位解除SWD读锁定。


具体操作如下:



SWD封锁加密时,将0x1c处写0xABCD1234,编译程序并下载,重新上电后无法通过仿真器访问芯片,不能执行读写擦除操作。

此时SWD端口切换为通用IO。


只能通过ISP进行单向访问。具体操作如下:




以SWM190为例

这里需要将ISP引脚(B0)接高,当芯片重新上电后检测到B0引脚持续1ms以上的高电平后,将会进入ISP(在应用编程)模式。

通用ISP程序使用串口进行通信,默认为UART0,引脚为A0(RX),A1(TX),硬件连接完成后打开华芯微特提供的上位机软件,选择SWM190芯片型号,可执行擦除或下载操作来更新程序以解除加密。

使用特权

评论回复

相关帖子

沙发
星辰大海不退缩| | 2023-2-16 09:50 | 只看该作者
还要写个解除的代码吧?

使用特权

评论回复
板凳
kkzz| | 2023-2-18 10:36 | 只看该作者
这个可以通过stlink utilit解锁的吗?

使用特权

评论回复
地板
10299823| | 2023-2-18 10:42 | 只看该作者
这个有熔丝位的吗?              

使用特权

评论回复
5
alvpeg| | 2023-2-18 10:46 | 只看该作者
芯片加密有点麻烦,用SWD接口烧写后,如果勾选了读保护,下次再更新就麻烦了

使用特权

评论回复
6
pmp| | 2023-2-18 10:52 | 只看该作者
只要下载器的硬件复位正常,芯片SWD接口锁住后就可以正常下载。

使用特权

评论回复
7
lzbf| | 2023-2-18 11:04 | 只看该作者
读保护可以保护数据不被读取的吗?

使用特权

评论回复
8
mollylawrence| | 2023-2-18 11:13 | 只看该作者
现在的arm内核的芯片加密性能怎么样

使用特权

评论回复
9
vivilyly| | 2023-2-18 11:17 | 只看该作者
单片机读保护怎么才能读取数据              

使用特权

评论回复
10
zerorobert| | 2023-2-18 11:21 | 只看该作者
单片机设置编程后的读写保护是为了防止程序代码被他人读取后反编译,写保护是为了防止再次写入代码损坏单片机

使用特权

评论回复
11
LOVEEVER| | 2023-2-20 09:59 | 只看该作者
通过擦除FALSH并复位解除SWD读锁定

使用特权

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

本版积分规则

177

主题

1274

帖子

3

粉丝