当前位置:数码通 > 硬件

HK32MCU应用笔记(11) | HK32F103xC/D/E Flash读保护应用及注意事项

来源于 数码通 2023-09-30 18:32

HK32F103xC/D/E

作为32位MCU,防止应用程序代码被非法读取非常重要。 HK32F103除了具有常规的加解密模块对Flash内容进行加解密之外,还提供了读写保护功能。一旦开启读保护功能,外部工具就无法读取主区的flash内容,起到了保护作用。

嵌入式Flash可以像一般存储空间一样直接寻址和访问。任何对Flash内容的读取操作都必须经过特殊的判断过程。取指令和取数据都是通过AHB总线访问的。它的主要工作是产生控制信号,然后读取Flash中的信息

HK32F103x/C/D/E 选项字节说明

选项字节由用户根据应用进行配置(例如:可以选择使用硬件Watchdog或软件Watchdog)。对于地址 0x1FFF F800~0x1FFFF810 处的选项字,选项字节中的每个 32 位字分为以下格式:

选项字节格式:

注1:烧写时,反码由硬件自动实现,软件写入无效。选项字节的组织结构如下表所示。选项字节可以从下表中列出的内存地址读取,也可以从选项字节寄存器 (FLASH_OBR) 读取。

注2:新写入的选项字节(用户或读/写保护)只有在系统复位后才会生效。

选项字节结构:

HK32F103x/C/D/E 的读取保护设置:

当 RDP 选择字配置值不是 0xA5 时,读保护启用。

当RDP选择字配置值为0xA5时,读保护解除。此操作将导致主闪存的全芯片擦除。

读保护状态存储在FLASH_OBR的bit1中。

使用HK32F103x/C/D/E读保护时需要注意的事项

问题描述:

当HK32F103xCxDxE处于读保护状态时,客户使用Keil+S**T-Link调试器下载。虽然提示下载不成功,但是芯片内部Code部分被擦除了。有客户反映下载不成功,必须保持设备原有功能。

Keil+Jlink则不存在这个问题。因为Jlink在下载前会选择性的去掉读保护,如下:

根本原因:

HK32F103xCxDxE 在读保护模式下,如果调试器选择Sector Erase,则除前4KB 以外的空间将被擦除。

解决方案:

使用S**T-Link Utility上位机先解除读保护,然后下载或模拟。如下,[目标]-->[选项tes]:

来源:航顺芯片

审稿编辑:唐子红

-->
登录后参与评论