普冉 PY32 单片机 FLASH 读保护设置与解除
·
文章目录
PY32 两种 Flash 读保护方案总结
PY32 防 Flash 读取分为两种架构:
- RDP 全局读保护:适用于 F002A / F030 / F040 / F071 等主流型号
- SDK 分区保护:PY32F002B 独有(无 RDP 功能)
两种均可通过 PuyaProgrammer 软件 或 代码配置 开启,开启后 SWD / JLINK / 串口 ISP 均无法读取 Flash 完整固件。
一、RDP 全局读保护(主流芯片)
RDP 通过 OptionByte 选项字节 控制,共 2 个档位:
| 保护等级 | 配置值 | 效果说明 |
|---|---|---|
| Level0(默认关闭) | 0xAA | 可正常读、写、擦除 Flash,出厂默认 |
| Level1(开启读保护) | 0x55 | 禁止 SWD / ISP 读取 Flash,程序可正常运行;解除保护必须整片擦除 |
⚠️ 重要:
从 Level1 恢复 Level0 必须整片擦除,所有程序数据清空。
务必 调试完成后再开保护,不要在开发阶段开启。
单片机FLASH程序内部无法执行保护降级,所以如果开启读保护后,必须用专用软件解除读保护。
方案1:PuyaProgrammer 开启读保护(量产首选)
无需改代码,适合量产烧录:
- 使用 PY-LINK(SWD) 或 USB-TTL(ISP) 连接芯片,选择对应型号
- 加载 hex / bin 固件,正常烧录程序
- 打开菜单栏
Option Byte选项字节配置 - RDP 默认
0xAA修改为0x55(开启 Level1 保护) - 勾选「下载时同步写入选项字节」
- 点击编程,烧录完成后断电重启
- 保护立即生效,无法读取 Flash
RDP 读保护解除方法
只能原厂工具解锁,JLINK/STLINK 无法解锁:
- PuyaProgrammer 连接芯片,进入选项字节
- RDP 改回默认值
0xAA - 执行 整片擦除(Erase All)
- 擦除完成,保护解除,可重新烧录调试
二、实战 PY32F030K28T6 解除读保护
- PuyaProgrammer 与单片机连接有两种方式:SWD和ISP

SWD方式需要用专用的下载器,我没有,就没有测试。
ISP使用普通USB转TTL,但是实测无法解除读保护。 - PY32IspTool
串口 ISP 专用烧录工具,,就是串口解锁用的 ISP 烧写软件,BOOT0 拉高进串口模式,用它全擦除解锁读保护。
我就是用这个软件,成功解除了读保护(单片机程序被清空,不是单片机解密,只是恢复为五保户可继续下载程序)。
操作步骤:
1 将单片机BOOT0引脚接3.3V。
2 按复位按钮,进入ISP模式。
3 USB转TTL接单片机的串口1。
| 单片机型号 | USART1_TX | USART1_RX | 复位引脚 | BOOT0 |
|---|---|---|---|---|
| PY32F030K28T6 | PA2 | PA3 | Pin4 PF2 | Pin31 PF4 |
| PY32F040C1BT6 | PA9 | PA10 | Pin7 | Pin44 PF8 |
注意:单片机的RX/TX与USB转TTL的RX/TX连接时要交叉连接。
4 点击Connect ,如果单片机有读报,软件会提示你是否擦除,确定即可。
软件下载网址:
https://gitee.com/puya-semiconductor/tools-and-software/blob/master/PY32_GCC/Firmware.zip
2026.6.3
更多推荐
所有评论(0)