航顺芯片HK32F103系列的flash读保护应用及注意事项
HK32F103xC/D/E作为32位MCU,防止应用代码被非法读取非常重要,除了常规的加解密模块对flash内容进行加解密,HK32F103还提供读、写保护功能。其中读保护功能一旦使能,则外部工具无法读取主片区flash内容,起到保护作用。
嵌入式Flash可以跟通用存储空间一样进行直接寻址访问。任何对Flash内容的读操作都须经过专门的判断过程。取指令和取数据都是通过AHB总线读取访问。它主要的工作就是产生控制信号,然后读取Flash里面的信息。
HK32F103x/C/D/E的选项字节说明
选项字节由用户根据应用配置(例如:可以选择使用硬件看门狗或软件看门狗)。对于0x1FFF F800~0x1FFFF810地址的选项字,在选项字节中每个32位的字被划分为下述格式:
选项字节格式:
注意1:编程时,反码由硬件自动实现,软件写无效。选项字节的组织结构如下表所示。选项字节可以从下表列出的存储器地址读出,或从选项字节寄存器 (FLASH_OBR) 读出。
注意2:新写入的选项字节(用户的或读/写保护的),在系统复位后才生效。
选项字节结构:
当RDP选择字配置值为非0xA5时,使能读保护。
当RDP选择字配置值为0xA5时,解除读保护,这个操作会引发一次主闪存的整片擦除。
读保护状态存储在FLASH_OBR的bit1。
HK32F103x/C/D/E的读保护在使用过程中需要注意的地方
问题描述:
当HK32F103xCxDxE在读保护作用下,客户使用Keil+S**T-Link调试器进行下载,虽然提示下载不成功,但是芯片内部的代码部分被擦除。有客户反馈,下载不成功,要保持设备原有功能正常。
Keil+Jlink 没有该问题。因为Jlink,会在下载前,可选择地去除读保护,如下:
根本原因:
HK32F103xCxDxE 在读保护模式下,debugger选择Sector Erase,会将前4KB以外的空间擦除掉。
解决方案:
用 S**T-Link Utility上位机先去掉读保护,再下载或者仿真。如下,[Target]-->[Option Bytes]:
如需要了解更多航顺MCU产品,请联系航顺核心代理商,颖特新科技,或者扫码联系我们!
在之前的介绍中,我们也为大家介绍了《航顺芯片HK32F103xC/D/E-同步注入模式下,ADC2工作状态不能单独配置》,也是目前我们主推的非常成熟的解决方案!
编辑:zzy 最后修改时间:2022-05-28